2013-07-20 71 views
0

我有一些问题重新排列在PHP中的数组。这是我...PHP Array重新排列

Array 
(
    [N] => Array 
     (
      [68] => sssssss ttttttt 
      [69] => uuuuuu vvvvvvvv 
     ) 

    [D] => Array 
     (
      [05] => zzzzzzzz zzzzzzzz 
      [07] => tttttttttttt ttttttttttt 
     ) 

    [P] => Array 
     (
      [88] => yyyyyyy zzzzzzzz 
     ) 

    [C] => Array 
     (
      [04] => wwwwww wwwwwww 
      [06] => iiiiiii iiiiiiii 
      [41] => zzzzzzzzzz zzzzzzzzzz 
     ) 

) 

我要的是下面...

Array 
(
    [N] => Array 
     (
      [68] => sssssss ttttttt 
      [69] => uuuuuu vvvvvvvv 
      // only C are added here with N 
      [04] => wwwwww wwwwwww 
      [06] => iiiiiii iiiiiiii 
      [41] => zzzzzzzzzz zzzzzzzzzz 

     ) 

    [D] => Array 
     (
      [05] => zzzzzzzz zzzzzzzz 
      [07] => tttttttttttt ttttttttttt 
     ) 

    [P] => Array 
     (
      [88] => yyyyyyy zzzzzzzz 
     ) 

    [C] => Array 
     (
      [04] => wwwwww wwwwwww 
      [06] => iiiiiii iiiiiiii 
      [41] => zzzzzzzzzz zzzzzzzzzz 
     ) 
) 

我需要的C-元素被添加到N,而所有其余的保持原样包括C本身。

我该如何做到这一点?

有人帮助,请... 感谢

回答

2

非常简单的东西;只需添加两个数组这样在一起:

// add C to N 
$arr['N'] += $arr['C']; 

如果你不知道什么键名称,你只是想针对第一项和最后一项:

reset($arr); $first = key($arr); 
end($arr); $last = key($arr); 

$arr[$first] += $arr[$last]; 
+0

这不是真的问题,但它输出的只是第一个数组加在一起N + C ...但不能循环通过它...任何方式,我从你的代码学到一些东西。 ..谢谢。 –

+0

@MrInternet恐怕我没有按照; 'print_r($ arr)'应该给出你想要的东西,可以看到[这里](http://codepad.viper-7.com/HfZvhb)。 –

+0

没有,print_r只给出$ arr ['N'] + = $ arr ['C'];但其他人呢?像['D'] ['P']?他们不包括在内。 –

0

试试这个:

$last_array = $main_array[count($main_array) - 1]; 
$new_array = array_merge($main_array[0], $last_array); 
array_shift($main_array); 
array_unshift($main_array, $new_array); 
var_dump($main_array); 
+0

感谢您的快速回复,并把我的代码以非常明确的格式,但不幸的是上面的代码似乎不工作,没有出(空),但我尝试不同的方法,可能是一些其他的想法? –

+0

@Mr互联网,好的。我redid的代码。它现在有效。 – searsaw

+0

这就是我得到,看来我们切割第一N元素从阵列... –

1

这其实是很简单的。您只需循环访问最后一个数组,并将这些键值对添加到第一个数组中。 在这里你去:

//---- $mainArray is your array. 


foreach ($mainArray['C'] as $key => $value) 
{ 
     $mainArray['N'][$key] = $value; 
} 

print_r($mainArray);