PHP按元素大小/字符串大小排序关联数组的数组

时间:2014-12-05 18:23:47

标签: php arrays sorting

有没有办法按照其中一个元素的长度对关联数组进行排序?我想要做的是按最大到最小的描述长度对数组进行排序。

$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

2 个答案:

答案 0 :(得分:2)

使用usort根据自定义参数对数组进行排序。

usort($array, function($a, $b) {
    return strlen($b['description']) - strlen($a['description']);
});
var_dump($array)

答案 1 :(得分:2)

array_column需要

PHP> = 5.5.0:

array_multisort(array_map('strlen', array_column($some_array, 'description')),
                SORT_DESC,
                $some_array);