3 "url" => "img/20191015/5da586020fa6b.jpg", 4 "alt" => "lunbo2", 5 "href" => "https://www.baidu.com/", 6 "sort" => "7" 8 array ( 9 "url" => "img/20191018/5da9783499dec.jpg", 10 "alt" => "X1300", 11 "href" => "https://www.baidu.com/fully-automatic-pallet-wrappin/x1300-180.html", 12 "sort" => "3" 13 ), 14 array ( 15 "url" => "img/20191018/5da987c81f420.jpg", 16 "alt" => "S300", 17 "href" => "https://www.baidu.com/fully-automatic-pallet-wrappin/s300-170.html", 18 "sort" => "4" 19 ) 20 ); 22 $cmf_arr = array_column( $cmf_settings , 'sort' );

打印$cmf_arr得到如下结果

方法二:array_multisort() 函数返回一个排序数组。您可以输入一个或多个数组。函数先对第一个数组进行排序,接着是其他数组,如果两个或多个值相同,它将对下一个数组进行排序。

array_multisort(‘数组1’, 'SORT_ASC(升序)', '数组2', '数组3', '数组4', '数组5', '数组6');

数组1:进行排序的数组。

SORT_ASC(升序):是对数组1的排序方式。

'数组2', '数组3'......:根据数组1的排序方式对'数组2', '数组3', '数组4', '数组5', '数组6'进行排序。

数组1升序排序: 第二组数据[1] => "3" 位置变成[0] => "3",那么'数组2', '数组3', '数组4', '数组5', '数组6'的第二组数据[1] => "不管是什么数据" 位置变成[0] => "不管是什么数据"。

参数描述 array1 必需。规定数组。 sorting order 可选。规定排列顺序。可能的值:
  • SORT_ASC - 默认。按升序排列 (A-Z)。
  • SORT_DESC - 按降序排列 (Z-A)。
  • SORT_REGULAR - 默认。把每一项按常规顺序排列(Standard ASCII,不改变类型)。
  • SORT_NUMERIC - 把每一项作为数字来处理。
  • SORT_STRING - 把每一项作为字符串来处理。
  • SORT_LOCALE_STRING - 把每一项作为字符串来处理,基于当前区域设置(可通过 setlocale() 进行更改)。
  • SORT_NATURAL - 把每一项作为字符串来处理,使用类似 natsort() 的自然排序。
  • SORT_FLAG_CASE - 可以结合(按位或)SORT_STRING 或 SORT_NATURAL 对字符串进行排序,不区分大小写。
  • 3 "url" => "img/20191015/5da586020fa6b.jpg", 4 "alt" => "lunbo2", 5 "href" => "https://www.baidu.com/", 6 "sort" => "7" 8 array ( 9 "url" => "img/20191018/5da9783499dec.jpg", 10 "alt" => "X1300", 11 "href" => "https://www.baidu.com/fully-automatic-pallet-wrappin/x1300-180.html", 12 "sort" => "3" 13 ), 14 array ( 15 "url" => "img/20191018/5da987c81f420.jpg", 16 "alt" => "S300", 17 "href" => "https://www.baidu.com/fully-automatic-pallet-wrappin/s300-170.html", 18 "sort" => "4" 19 ) 20 ); 22 $cmf_arr = array_column( $cmf_settings , 'sort' ); 24 array_multisort ( $cmf_arr , SORT_ASC, $cmf_settings );

    打印$cmf_settings得到如下结果,满足需求。

    总结:利用 array_column() 把要排序的键值提取出来,在利用array_multisort()对数组进行排序。理解起来有点绕,不过以后的用处会很大的。

    如有错误请指出,谢谢。