Nasıl iki diziler birleştirebilirsiniz?

6 Cevap php

Bu soru için yeterli olan Bunlar aşağıdaki gibi basitleştirilmiş. Bu soru, this answer dayanmaktadır.

1

[a][b][]

ve

2

[a][c]

iki dizide tek bir ortak Subarray sahip olduğu [a].

Ben bu istiyorum

[a][c][b][]

I have run the following commveunsuccessfully

array1[a] + array2[a]

6 Cevap

fveyaeach($array1 as $a => $c)
{
    $end_array[$c] = $array2[$a];
}


veya

// Fveya every [a]
fveyaeach($array1 as $a => $c)
{
    // Get the [b]
    $b = $array2[$a];

    // Add it to [a][c]
    $end_array[$a][$c] = $b;

    // Making it $end_array[$a][$c][$b] = array(....);
}

$ Dizi1 = array_merge ($ dizi1, $ dizi2);

Tamam, ben bahsettiğini görüyorum. (: http://dpaste.com/81464/ else herkes için, o yayınlanmıştır bağlantıya bakınız)

var $output = array();

foreach ($array1 as $index => $a1) {
    $output[$index] = $a1;
    $output[$index]['title'] = $array2[$index]['title'];
}

PHP bu ortak sorunu çözmek için bir çözüm sağlar:

$a = array_merge($b, $c);

Bu çözüm ile $ b içindeki tüm unsurları almak ve $ c ile onları birleştirmek için gidiyoruz. Ilişkilendirilebilir diziler kullanıyorsanız Ama, size $ c olanlar ile $ b değerleri değiştirmek için gidiyoruz fark etmeli.

Örneğin:

<?php

$a = array(
    'ka' => 1,
    'kb' => 1,
);

$b = array(
    'kb' => 2,
    'kc' => 2,
);

print_r(array_merge($a, $b));


?>

Bu kodun sonucu gibi bir şey olacaktır:

Array
(
    [ka] => 1
    [kb] => 2
    [kc] => 2
)
for($i = 0; $i < sizeof($array); $i++)
{
     $mergedarray[a][b] = $a[a][b];
     $mergedarray[a][c] = $b[a][c];
}

kadarıyla bunu söyleyebilirim gibi bu, ne istediğinizi hem alt anahtarları aynı kök anahtara sahip olduğu yoldur.