php把二维数组中的数组按照其中一个值进行重新排序

admin2023-01-191563

二维数组如下:

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得排序了。

网友评论