duanjian9148 2012-02-10 15:07
浏览 32
已采纳

如何重构多维数组? [关闭]

I'm having problem with my array basicly this is what i have:

$test = 
array(
  "image" => array(
        "name" => array(
            "name.jpg",
            "name2.jpg",
            "name3.jpg"
        ),
        "type"  => array(
                "image/jpeg",
                "image/jpeg",
                "image/jpeg",
        ),
        "size" => array(
          118108,
          589788,
          1387074
        )
    )
)

And this is what i would like to have:

$test2 =
array(
    "0" => array(
        "name" => "name.jpg",
        "type" => "image/jpeg",
        "size" => 118108
    ),
    "1" => array(
        "name" => "name2.jpg",
        "type" => "image/jpeg",
        "size" => 589788
    ),
    "2" => array(
        "name" => "name3.jpg",
        "type" => "image/jpeg",
        "size" => 1387074
    )

)

So i need some kind of script which would redo that first array structure in to the second one

  • 写回答

4条回答 默认 最新

  • dpl9717 2012-02-10 16:02
    关注

    Here's a more generic solution. It will rebuild an array with any property names. I also wrapped it in a function to make it easier to use.

    Using:

    function func(array $input)
    {
        $result = array();
    
        foreach ($input as $type => $properties) {
            foreach ($properties as $name => $values) {
                for ($i = 0; $i < count($values); $i++) {
                    $result[$i][$name] = $values[$i];
                }
            }
        }
    
        return $result;
    }
    

    Results in:

    Array
    (
        [0] => Array
            (
                [name] => name.jpg
                [type] => image/jpeg
                [size] => 118108
            )
    
        [1] => Array
            (
                [name] => name2.jpg
                [type] => image/jpeg
                [size] => 589788
            )
    
        [2] => Array
            (
                [name] => name3.jpg
                [type] => image/jpeg
                [size] => 1387074
            )
    
    )
    

    Hope it helps!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染