2010-12-21 15 views
3

Ich habe zwei Arrays:Array von zwei Typen

Array 
(
    [0] => Mon 
    [1] => Sun 
) 

Array 
(
    [0] => Array 
     (
      [date] => 2010-12-20 
      [hours] => 4 
     ) 

    [1] => Array 
     (
      [date] => 2010-12-19 
      [hours] => 2.0 
     ) 

) 

Wie kombinieren beide als:

Array 
(
    [0] => Array 
     (
      [date] => 2010-12-20 
      [hours] => 4 
    [day] => Mon 
     ) 

    [1] => Array 
     (
      [date] => 2010-12-19 
      [hours] => 2.0 
    [day] => Sun 
     ) 

) 

Danke - Haan

+1

Zusammenführen der Arrays wird nicht das Ergebnis erhalten Sie suchen - sie sind in verschiedenen Ordnungen. Ich werde eine Antwort geben unter der Annahme, dass das erste Array Sonne vor Mon setzt, aber wenn Sie sich nicht darauf verlassen können, ist dies eher ein Date-Problem als ein Array-Problem –

Antwort

1

aktualisiert.

$secondArray[0]['day'] = $firstArray[0]; 
$secondArray[1]['day'] = $firstArray[1]; 

, wenn Sie sicher Thay sind sie beide die gleiche Größe:

for($i = 0; $i < count($firstArray); $i++) 
{ 
    $secondArray[$i]['day'] = $firstArray[$i]; 
} 
2
// copy array 2 into the result array. 
$combined = $arr2; 

// add a new key 'day' with value from first array. 
for($i=0;$i<count($combined);$i++) { 
     $combined[$i]['day'] = $arr1[$i]; 
} 

See it

+0

@ codaddict: vielen Dank. funktioniert gut. Vielen Dank für Ihren wertvollen Vorschlag. – hjaffer2001

0

Ich glaube, Sie wollen folgendes versuchen: $ second [i] [‘ Tag '] = $ firstArray [i];

0
$dayOfWeek = array('Mon', 'Sun'); 
$dateWithHours = array(array('date'=>'12-20-2010', 'hours'=>4.0), array('date'=>'12-19-2010', 'hours'=>2.0)); 

foreach(&$dateWithHours as $k=$v) 
{ 
    $v['day'] = $dayOfWeek[$k]; 
} 

Denken Sie daran, dass Et-Zeichen. Ohne es ist $ v eine Kopie, die das Original nicht ändert. Damit ist es eine Referenz, die Sie ändern können.

Verwandte Themen