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
的引用,我认为您的排序将按预期工作。嗯,当我添加一个&然后我得到一个错误