如何重新排列数组

时间:2014-06-01 07:28:53

标签: php arrays multidimensional-array

我有重复排列数组的问题,我尝试了大部分数据..尝试使用array_merge,foreach,forloop,while循环等但没有运气

我的概念并不清楚我需要你的帮助来了解我如何根据我的要求更改数组,如果你只给我概念的想法,我不需要代码,我首先尝试自己的代码它

这是数组

   Array
    (
      [links] => Array
             (
     [song_name] => Array
             (
                 [0] => AA
                 [1] => BB
                 [2] => CC
                 .....
             )

              [singer_name] => Array
             (
                 [0] => AA
                 [1] => BB
                 [2] => CC
                 .....
             )

              [song_url_320] => Array
             (
                 [0] => AA
                 [1] => BB
                 [2] => CC
                 .....
             )

              [song_url_128] => Array
             (
                 [0] => AA
                 [1] => BB
                 [2] => CC
                 .....
             )
        )

     )

我需要改变这样的数组:

Array
(
    [links] => Array
        (
            [0] => Array
                (
                    [song_name] => AA
                    [singer_name] => AA
                    [song_url_320] => AA
                    [song_url_128] => AA
                        .....
                )
         [1] => Array
                (
                    [song_name] => BB
                    [singer_name] => BB
                    [song_url_320] => BB
                    [song_url_128] => BB
                        .....
                )
         [2] => Array
                (
                    [song_name] => CC
                    [singer_name] => CC
                    [song_url_320] => CC
                    [song_url_128] => CC
                        .....
                )
        )
)

4 个答案:

答案 0 :(得分:1)

想法:遍历所有项目并将它们组合成另一个数组

以下是示例代码:

$inputarray = array(...);

$outputarray = array('links' => array());
foreach ($inputarray['links'] as $k => $v)
    foreach ($v as $k2 => $v2) {
        $outputarray['links'][$k2][$k] = $v2;
    }

答案 1 :(得分:0)

像这样使用循环

 foreach($arr['links'] as $k =>$v)
 { 
    foreach ($v as $k1 => $v1) {
         $t[$k1][$k] = $v1; 
      }

 }

 print_r($t);

<强> 输出

Array
(
    [0] => Array
        (
            [song_name] => AA
            [singer_name] => AA
            [song_url_320] => AA
            [song_url_128] => AA
        )

    [1] => Array
        (
            [song_name] => BB
            [singer_name] => BB
            [song_url_320] => BB
            [song_url_128] => BB
        )

    [2] => Array
        (
            [song_name] => CC
            [singer_name] => CC
            [song_url_320] => CC
            [song_url_128] => CC
        )

)

答案 2 :(得分:0)

创建一个空数组。然后使用索引号作为新数组的键,为links数组中的每个数组执行foreach循环。

更多细节,没有显示代码。链接中的foreach循环抓取链接内的数组的alpha索引。然后在链接内部的数组上执行foreach循环,获取每个项目的数字索引和值。然后使用数字和字母键将其添加到新的链接数组中,并为其指定值。

我希望这对你有意义。如果没有,请告诉我,我会为您做一些示例代码。

答案 3 :(得分:0)

如果您的数组位于变量$ original_array中,那么这样做:

$new_array = array('links'=>array());
foreach ($original_array['links'] as $key => $data) foreach ($data as $n => $value) $new_array['links'][$n][$key] = $value;