Birleştirme ya da bunun gibi bir dizi birleştirmek?

3 Cevap php

Bu çok boyutlu PHP dizi var (below).


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
        )

)


Ben nasıl birleştirebilir merak ediyorum? veya birleştirmek? ya da sadece PHP kullanarak bu gibi bunu (below).


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
)

Yardım

3 Cevap

Sen call_user_func_array() aracılığıyla ilk düzey elemanlarına ikinci düzey elemanları "teşvik" edebilir. Ve array_merge () yeniden endeksler dizi, array_replace() değil ama bu bir-liner yapar orijinal anahtarları korur iken:

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

testi:

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

Sadece başka dizi ve mağaza geçmesi.

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

Bu nasıl?


foreach( $old_arr as $old )
{
    $key = key( $old[0] );
    $new[ $key ] = $old[0][$key];
}

EDIT: Aldırma önceki cevabı etmemişti giderilmiştir.