如何重新排列数组



我正在重新排列数组,我尝试了其中的大多数。尝试使用array_merge, foreach, forloop, while loop等,但没有运气

我的概念不清楚,我需要你的帮助得到一个想法,我如何能改变数组按照我的要求,它的更好的,如果你只给我的概念的想法,我不需要代码,我尝试我自己先编码它。

这是数组

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

创意:遍历所有元素并将它们组合成另一个数组

下面是示例代码:

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

像这样使用for循环

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

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

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

我希望这对你有意义。如果它没有,让我知道,我会做一些示例代码为您。

如果你的数组是在一个变量$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;

相关内容

  • 没有找到相关文章

最新更新