2010-12-21 6 views
3

J'ai deux tableaux:Tableau de deux types

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

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

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

) 

Comment combiner les deux comme:

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

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

) 

Merci - Haan

+1

fusionner les tableaux n'obtiendra pas le résultat que vous recherchez - ils sont dans des ordres différents. Je vais donner une réponse en supposant que le premier tableau met Sun avant Lun, mais si vous ne pouvez pas compter sur cela c'est vraiment plus d'un problème de Date qu'un problème de tableau –

Répondre

1

mis à jour.

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

si vous êtes Thay sûr qu'ils sont à la fois de la même taille:

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: merci beaucoup. fonctionne bien. merci à tous pour votre suggestion valable. – hjaffer2001

0

Je pense que vous pouvez essayer: secondArray $ [i] [ » jour '] = $ 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]; 
} 

Rappelez-vous cette esperluette. Sans cela, $ v est une copie qui ne modifiera pas l'original. Avec elle, c'est une référence que vous pouvez changer.

Questions connexes