PHP翻转多维数组不工作


PHP Flipping multidimentional array doesn't work

我写了这段代码:

function multiArrayFlip($array)
{
    $arrayCount = count($array);
    if ($arrayCount != count($array, COUNT_RECURSIVE)) 
    {
        foreach($array as $key => $value)
        {
            if (is_array($value))
            {
                $array[$key] = multiArrayFlip($value);
            }
        }
    }
    else
    {
      array_flip($array);
    }   
    return $array;
}

但它不起作用。它返回不变的数组。

下面是数组数据示例:

    Array
    (
        [0] => Array
            (
                [0] => Array
                    (
                        [zip] => 02135
                        [hispanic_percent] => 7.4
                        [white_percent] => 73.1
                        [black_percent] => 4.2
                        [native_american_percent] => 0
                    )
            )
        [1] => Array
            (
                [0] => Array
                    (
                        [zip] => 02135
                        [school_number] => 1
                        [school_name] => ANOTHER COURSE TO COLLEGE
                        [school_address] => 20 WARREN STREET BRIGHTON MA 02135
                        [contact_number] => 617-635-8865
                        [start_grade] => 9TH GRADE
                        [reduced_lunch_students_count] => 8
                        [reduced_lunch_students_percent] => 120
                        [free_or_reduced_lunch_students_count] => 53
                        [free_or_reduced_lunch_students_percent] => 0
                    )
)
)

您必须将array_flip函数的返回值重新赋值给$array变量才能工作

您需要修改您的函数以使其正确工作。重新赋值array_flip

之后的值
function multiArrayFlip($array)
{
    $arrayCount = count($array);
    if ($arrayCount != count($array, COUNT_RECURSIVE)) 
    {
        foreach($array as $key => $value)
        {
            if (is_array($value))
            {  
                $array[$key] = multiArrayFlip($value);
            }
        }
    }
    else
    {
      $array = array_flip($array);
    }   
    return $array;
}

希望这对你有帮助