您的位置:首页 > 编程语言 > PHP开发

array_multisort 对关联数组进行排序的问题 PHP

2016-06-02 12:27 751 查看
我们在php的数组操作中经常用到对数组进行排序的问题,这里说的是对关联数组进行排序
需要用到函数 array_multisort 。

array_multisort(array_column($arr, 'weight'),SORT_NUMERIC, SORT_ASC, $arr);   // 对关联数组 $arr  将键列'weight'转换为数字进行升序排序

SORT_NUMERIC  // 转换为数字排序

SORT_STRING  // 转换为文本排序

SORT_ASC     // 升序

SORT_DESC    // 降序

示例:
原关联数组:

$data[] = array('volume' => 'id100343', 'weight' => '4');
$data[] = array('volume' => 'id100212', 'weight' => '1');
$data[] = array('volume' => 'id104104', 'weight' => '10');

var_dump($data);

按照weight进行排序(数字方式SORT_NUMERIC):

array_multisort(array_column($data, 'weight'),SORT_NUMERIC, SORT_ASC, $data);

输出结果:

array(3) {
[0]=>
array(2) {
["volume"]=>
string(8) "id100212"
["weight"]=>
string(1) "1"
}
[1]=>
array(2) {
["volume"]=>
string(8) "id100343"
["weight"]=>
string(1) "4"
}
[2]=>
array(2) {
["volume"]=>
string(8) "id104104"
["weight"]=>
string(2) "10"
}
}

按照weight进行排序(文本方式SORT_STRING):

array_multisort(array_column($data, 'weight'),SORT_STRING, SORT_ASC, $data);

array(3) {
[0]=>
array(2) {
["volume"]=>
string(8) "id100212"
["weight"]=>
string(1) "1"
}
[1]=>
array(2) {
["volume"]=>
string(8) "id104104"
["weight"]=>
string(2) "10"
}
[2]=>
array(2) {
["volume"]=>
string(8) "id100343"
["weight"]=>
string(1) "4"
}
}

需要注意10作为数字和文本的区别。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: