php把二维数组中的数组按照其中一个值进行重新排序
二维数组如下:
array(3) { [0]=> array(5) { ["group"]=> string(1) "a" ["title"]=> string(15) "我的标题111" ["img"]=> string(60) "http://www.yoga.cm/zb_users/theme/D_Yoga/images/banner01.jpg" ["url"]=> string(19) "http://www.yoga.cm/" ["order"]=> string(1) "1" } [1]=> array(5) { ["group"]=> string(1) "a" ["title"]=> string(15) "我的标题222" ["img"]=> string(60) "http://www.yoga.cm/zb_users/theme/D_Yoga/images/banner02.jpg" ["url"]=> string(19) "http://www.yoga.cm/" ["order"]=> string(1) "4" } [2]=> array(5) { ["group"]=> string(1) "a" ["title"]=> string(15) "我的标题333" ["img"]=> string(60) "http://www.yoga.cm/zb_users/theme/D_Yoga/images/banner03.jpg" ["url"]=> string(19) "http://www.yoga.cm/" ["order"]=> string(1) "3" } }
把这个二维数组从新排序,按照order的值来排。
function order($array){ //把各个数组中的order取出来成立一个新数组 $order = array_column($array, 'order');//php5.5新增函数 array_multisort($order,SORT_ASC,SORT_REGULAR,$array); var_dump($array); }
array_column()提取了字段的关键字,然后对关键字进行排序,array_multisort()然后源数组会根据前面的关键字段跟着排序,这样就非常方便了,此时打印就成了1,3,4得排序了。