PHP bu iki özel dizi birleştirmek nasıl?

3 Cevap php

Ben bu dizi var:

$array['apples'][0]['name'] = 'Some apple';
$array['apples'][0]['price'] = 44;

$array['oranges'][0]['name'] = 'Some orange';
$array['oranges'][0]['price'] = 10;

Ben bu olsun yani nasıl ben iki diziyi birleştirme:

$array[0]['name'] = 'Some apple';
$array[0]['price'] = 44;
$array[1]['name'] = 'Some orange';
$array[1]['price'] = 10;

3 Cevap

Ben test etmek için burada PHP zorunda değilsiniz, ama sadece değil:

$array2 = $array['apples'];
array_merge($array2, $array['oranges']);

Verilen bu şimdi $array2 yerine $array is ...

PHP 4 yana kullanabilirsiniz

array_merge  ( array $array1  [, array $array2  [, array $...  ]] )

Örnek:

<?php
$beginning = 'foo';
$end = array(1 => 'bar');
$result = array_merge((array)$beginning, (array)$end);
print_r($result);
?>

Yukarıdaki örneğin çıktısı:

Array
(
    [0] => foo
    [1] => bar
)

Php kılavuzda daha okuyun: http://php.net/manual/en/function.array-merge.php

For multidimensional arrays (since PHP 4.0.1) you can use: array_merge_recursive ( array $array1 [, array $... ] )

Örnek:

<?php
$ar1 = array("color" => array("favorite" => "red"), 5);
$ar2 = array(10, "color" => array("favorite" => "green", "blue"));
$result = array_merge_recursive($ar1, $ar2);
print_r($result);
?>

Yukarıdaki örneğin çıktısı:

Array
(
    [color] => Array
        (
            [favorite] => Array
                (
                    [0] => red
                    [1] => green
                )

            [0] => blue
        )

    [0] => 5
    [1] => 10
)

Değerleri gibi $array birleştirmek istediğiniz diziler görünüyor. Bu array_merge geçirilen argümanların sayısını dinamik gerektirdiğinden, bunu gerçekleştirmek için biliyorum tek yolu geçer call_user_func_array:

$array = call_user_func_array('array_merge', array_values($array));

Bu meyve herhangi bir miktar ile çalışması gerekir.