我有这样的数组
Array
(
[0] => Array
(
[id] => 16059
[product_id] => 4013
[Product] => Array
(
[id] => 4013
[name] => XYZ
)
)
[1] => Array
(
[id] => 16060
[product_id] => 4462
[Product] => Array
(
[id] => 4462
[name] => MNOP
)
)
[2] => Array
(
[id] => 16061
[product_id] => 4473
[Product] => Array
(
[id] => 4473
[name] => ABCD
)
)
)
如何使用Product> name升序来缩短此数组。我可以使用for-each循环,但是有没有循环的方法吗?
答案 0 :(得分:2)
usort($array, function($a, $b) {
return strcmp($a['Product']['name'] , $b['Product']['name']);
});
print_r($array);
答案 1 :(得分:1)
尝试-
usort($array, function($a, $b) {
return $a['Product']['name'] > $b['Product']['name'];
});
答案 2 :(得分:1)
这是摘要,
$t = [];
foreach ($arr as $key => $value) {
$t[$key] = $value['Product']['name'];
}
array_multisort($t, SORT_ASC, $arr);
首先,获取该名称的数据并创建一个数组。
将用于排序条件的相关数组传递到多维数组。
Demo。