【问题标题】:PHP Flipping multidimentional array doesn't workPHP翻转多维数组不起作用
【发布时间】:2013-03-24 04:27:21
【问题描述】:

我想出了这个代码:

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
                    )
)
)

【问题讨论】:

  • @mkjasinski 你的意思是显示输出结果?它与我提供的数据样本相同。

标签: php arrays recursion flip


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    您需要修改函数以使其正常工作。重新分配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;
    }
    

    希望这会有所帮助:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-11
      • 2013-01-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多