php排序多嵌套数组
我在使用嵌套数组等对数组进行排序时遇到问题。数组如下所示:php排序多嵌套数组,php,sorting,Php,Sorting,我在使用嵌套数组等对数组进行排序时遇到问题。数组如下所示: $array = array( "item" => array( "childs" => array( 01 => array( "name" => "Min", "content" => "CC", "number" =&g
$array = array(
"item" => array(
"childs" => array(
01 => array(
"name" => "Min",
"content" => "CC",
"number" => "111"
),
02 => array(
"name" => "Min",
"content" => "BB",
"number" => "101"
),
03 => array(
"name" => "Min",
"content" => "AA",
"number" => "115"
),
04 => array(
"name" => "Min",
"content" => "BB",
"number" => "100"
),
)
),
);
我想按内容和数量对数组(具体来说是child)进行排序。这是我的密码:
foreach ($array as $item) {
foreach($item as $childs) {
$row = array();
$number = array();
foreach($childs as $child) {
$row[] = $child["row"];
$number[] = $child["number"];
}
array_multisort($number, SORT_ASC, SORT_NUMERIC, $row, SORT_ASC, $childs);
};
};
但它似乎不起作用。我没有收到错误,但是数组没有排序。有人能帮我一下吗?我想根本原因是:“当您循环数组时。数组中的项不是引用变量(您已在另一个数组中排序)”
您可以通过传递引用变量来尝试
foreach ($array as &$item) {
foreach($item as &$childs) {
$row = array();
$number = array();
foreach($childs as $child) {
$row[] = $child["row"];
$number[] = $child["number"];
}
array_multisort($number, SORT_ASC, SORT_NUMERIC, $row, SORT_ASC, $childs);
};
};
请展示你的期望。数据排序后将如何显示?当前方法的一个问题是,foreach循环中的
$item
和$childs
变量是数组内容的副本,因此对它们进行排序不会影响原始数组。我希望子数组中的元素按编号ASC和行ASC排序。我如何处理原始的一个?使用引用?是的,如果您同时使用$Item
和$childs
的引用,我认为您的排序将按预期工作。嗯,当我添加一个&然后我得到一个错误