Iki alanda (append değil / birleştirme) ile bir dizi aynı uzunlukta iki dizi birleştirmek için nasıl

6 Cevap php

Say, ben ay ile bir dizi var

$months = array('Jan', 'Feb', 'Mar'...'Dec');

(2010 yılı için diyelim ki,) Ve başka, gün ile

$mdays = array(31, 28, 31...31);

Ben böyle bir diziye, bu iki diziyi birleştirmek / birleştirmek istiyorum:

$monthdetails[0] = ('month' => 'Jan', 'days' => 31)

$monthdetails[1] = ('month' => 'Feb', 'days' => 28)

...

$monthdetails[11] = ('month' => 'Dec', 'days' => 31)

Ben diziler hem aracılığıyla döngü can ve $monthdetails doldurun. Ben aynı sonucu elde etmek için herhangi bir fonksiyonları / kolay bir yolu olup olmadığını bilmek istiyorum.

Thanks! Raj

6 Cevap

Her iki dizilerin sırası aynı olduğu göz önüne alındığında:

foreach ($months as $key => $value) {
  $monthdetails[$key] = array('month' => $value, 'days' => $mdays[$key]);
}

array_combine

$monthdetails = array_combine($months, $mdays);


echo $monthdetails['Jan']; //31

Bu aradığınızı tam olarak değil, ama bu yöntemi kullanmak için sisteminizi adapte olmalıdır.

Iki dizide aynı boyutta varsayarsak:

$count = count($months);
$monthdetails = array();
for ($i=0; $i<$count; $i++) {
    $monthdetails[] = array('month' => $months[$i], 'days' => $mdays[$i]);
}

Edit: diğer yanıtlar gibi, array_combine() hemen akla geldi ama bu soru sordu tam olarak ne yapmaz.

2 Edit: o artık yıl olasılığı ile başa gelmez çünkü ben hala böyle bir doğrudan yaklaşım kullanarak karşı tavsiye ederim. Yeniden icat tarih-tekerlek zaman genellikle iyi bir fikir değildir.

Eğer böyle bir dizi yapı ile yaşamak durumunda:

Array
(
    [Jan] => 31
    [Feb] => 28
    [Mar] => 31
    ...
    [Dec] => 31
)

Sonra array_combine() arkadaşınız:

$monthdetails = array_combine($months, $mdays);

Muhtemelen en hızlı yolu olacaktır ...

I believe array_combine does what you want: http://www.php.net/manual/en/function.array-combine.php

Bu tuşlar için ilk dizi ve değerler için ikinci kullanır.

Array_combine sahip iki diziyi birleştirmek? http://www.php.net/manual/en/function.array-combine.php