合并或组合这样的数组?在PHP上

时间:2009-07-17 05:48:00

标签: php arrays multidimensional-array

我有这个多维PHP数组(下面)。


Array
(
    [0] => Array
        (
            [2] => one@example.com
        )

    [1] => Array
        (
            [4] => two@example.com
        )

    [2] => Array
        (
            [3908] => twenty@example.com
        )

    [3] => Array
        (
            [2548] => eleven@example.com
        )

    [4] => Array
        (
            [3099] => ten@example.com
        )

    [5] => Array
        (
            [5283] => six@example.com
        )

)

我想知道我怎么能合并?还是结合?或者简单地使用PHP(下面)这样做。


Array
(
    [2] => one@example.com
    [4] => two@example.com
    [3908] => twenty@example.com
    [2548] => eleven@example.com
    [3099]  => ten@example.com
    [5283]  => six@example.com
)

帮助

3 个答案:

答案 0 :(得分:3)

您可以通过call_user_func_array()将第二级元素“提升”为第一级元素。虽然array_merge()重新索引数组,但array_replace()不会保留原始键,这使得它成为一个单行:

$a = call_user_func_array('array_replace', $a);

试验:

<?php
$a = array (
  array (2 => 'one@example.com'),
  array (4 => 'two@example.com'),
  array (3908 => 'twenty@example.com'),
  array (2548 => 'eleven@example.com'),
  array (3099 => 'ten@example.com'),
  array (5283 => 'six@example.com'),
);
$a = call_user_func_array('array_replace', $a);
var_dump($a);

答案 1 :(得分:0)

只需浏览阵列并存储到另一个阵列。

$a = array( 0 => array(1) , 1=> array(3) );
$another=array();
foreach ($a as $k=>$v){    
    foreach ($v as $y=>$z){
        $another[$k]=$z;
    }    
}
print_r($another);

答案 2 :(得分:-1)

这个怎么样?


foreach( $old_arr as $old )
{
    $key = key( $old[0] );
    $new[ $key ] = $old[0][$key];
}
编辑:没关系,没有意识到以前的答案已得到纠正。