PHP数组[排序和分组]
如何在PHP中使用条件对数组进行排序? 我希望数组按ID排序,然后在ID内按父ID排序,而不是在ID之后。 这样做的原因是将其实现到jQuery TreeGrid中 例如:PHP数组[排序和分组],php,arrays,sorting,Php,Arrays,Sorting,如何在PHP中使用条件对数组进行排序? 我希望数组按ID排序,然后在ID内按父ID排序,而不是在ID之后。 这样做的原因是将其实现到jQuery TreeGrid中 例如: Array ( [0] => Array ( [0] => 1 //ID [1] => TEST //Name [2] => 1 //Parent ID ) [1] => Array ( [0] =>
Array
(
[0] => Array
(
[0] => 1 //ID
[1] => TEST //Name
[2] => 1 //Parent ID
)
[1] => Array
(
[0] => 2 //ID
[1] => TEST //Name
[2] => 2 //Parent ID
)
[2] => Array
(
[0] => 3 //ID
[1] => TEST //Name
[2] => 3 //Parent ID
)
[3] => Array
(
[0] => 4 //ID
[1] => TEST //Name
[2] => 1 //Parent ID
)
[4] => Array
(
[0] => 5 //ID
[1] => TEST //Name
[2] => 2 //Parent ID
)
)
排序后,变成这样:
Array
(
[0] => Array
(
[0] => 1 //ID
[1] => TEST //Name
[2] => 1 //Parent ID
)
[1] => Array
(
[0] => 4 //ID
[1] => TEST //Name
[2] => 1 //Parent ID
)
[2] => Array
(
[0] => 2 //ID
[1] => TEST //Name
[2] => 2 //Parent ID
)
[3] => Array
(
[0] => 5 //ID
[1] => TEST //Name
[2] => 2 //Parent ID
)
[4] => Array
(
[0] => 3 //ID
[1] => TEST //Name
[2] => 3 //Parent ID
)
)
你可以用
您甚至可以使用array\u orderby()
缩短上述示例:
使用此代码。它会起作用的
foreach ($data as $key => $row) {
$id[$key] = $row[0];
$parent_id[$key] = $row[2];
}
array_multisort($id,SORT_ASC,$parent_id,SORT_ASC,$data);
你试过什么?在发布之前,您是否先在此处搜索过SO?您正在从数据库中获取这些数据吗?@Sougata yea。。它来自数据库,那么为什么不在获取时对其进行排序呢?显示查询。使用此方法,它只能对ID进行排序,父ID在ID下排序,不在ID内。使用此方法,它只能对ID进行排序,父ID在ID下排序,不在ID内。。
$your_array = array_orderby ($your_array, 0, SORT_ASC, 2, SORT_ASC);
foreach ($data as $key => $row) {
$id[$key] = $row[0];
$parent_id[$key] = $row[2];
}
array_multisort($id,SORT_ASC,$parent_id,SORT_ASC,$data);