有没有办法按其中一个元素的长度对关联数组数组进行排序? 我试图做的是按最大到最小的描述长度对数组进行排序。
$some_array = [];
$some_array[0] = ['name'=>'a name','description'=>'a description'];
$some_array[1] = ['name'=>'a name1','description'=>'a description 1'];
$some_array[2] = ['name'=>'a name2','description'=>'a description two for the third array element'];
$some_array[3] = ['name'=>'a name3','description'=>'a description three'];
在上面的例子中,$some_array[2]
应该先是3
然后是1
然后是0
。
PHP>= 5.5.0 需要 array_column
:
array_multisort(array_map('strlen', array_column($some_array, 'description')),
SORT_DESC,
$some_array);
使用 usort
根据自定义参数对数组进行排序。
usort($array, function($a, $b) {
return strlen($b['description']) - strlen($a['description']);
});
var_dump($array)