2017-02-21 2 views
-1

J'ai 2 tableaux comme ceci. Array1:Créer un nouveau tableau en utilisant 2 tableaux différents en php

Array 
(
    [abu-garcia] => 1 
    [daiwa] => 4 
    [shimano] => 4 
) 
Array 2: 
Array 
(
    [0] => Array 
     (
      [brand_id] => 36 
      [brand_name] => Abu Garcia 
      [brand_slug] => abu-garcia 
     ) 

    [1] => Array 
     (
      [brand_id] => 41 
      [brand_name] => Daiwa 
      [brand_slug] => daiwa 
     ) 

    [2] => Array 
     (
      [brand_id] => 41 
      [brand_name] => Daiwa 
      [brand_slug] => daiwa 
     ) 

    [3] => Array 
     (
      [brand_id] => 41 
      [brand_name] => Daiwa 
      [brand_slug] => daiwa 
     ) 

    [4] => Array 
     (
      [brand_id] => 41 
      [brand_name] => Daiwa 
      [brand_slug] => daiwa 
     ) 

    [5] => Array 
     (
      [brand_id] => 39 
      [brand_name] => Shimano 
      [brand_slug] => shimano 
     ) 

    [6] => Array 
     (
      [brand_id] => 39 
      [brand_name] => Shimano 
      [brand_slug] => shimano 
     ) 

    [7] => Array 
     (
      [brand_id] => 39 
      [brand_name] => Shimano 
      [brand_slug] => shimano 
     ) 

Je veux créer un nouveau tableau qui devrait ressembler à ceci:

Array 
(
    [0] => Array 
     (
      [brand_id] => 36 
      [brand_name] => Abu Garcia 
      [brand_slug] => abu-garcia 
      [count] => 1 
     ) 

    [1] => Array 
     (
      [brand_id] => 41 
      [brand_name] => Daiwa 
      [brand_slug] => daiwa 
      [count] => 4 
     ) 

    [2] => Array 
     (
      [brand_id] => 41 
      [brand_name] => Daiwa 
      [brand_slug] => daiwa 
      [count] => 4 
     ) 

    [3] => Array 
     (
      [brand_id] => 41 
      [brand_name] => Daiwa 
      [brand_slug] => daiwa 
      [count] => 4 
     ) 

    [4] => Array 
     (
      [brand_id] => 41 
      [brand_name] => Daiwa 
      [brand_slug] => daiwa 
      [count] => 4 
     ) 

    [5] => Array 
     (
      [brand_id] => 39 
      [brand_name] => Shimano 
      [brand_slug] => shimano 
      [count] => 4 
     ) 

    [6] => Array 
     (
      [brand_id] => 39 
      [brand_name] => Shimano 
      [brand_slug] => shimano 
      [count] => 4 
     ) 

    [7] => Array 
     (
      [brand_id] => 39 
      [brand_name] => Shimano 
      [brand_slug] => shimano 
      [count] => 4 
     ) 

Les deux tableaux il sont créés par wordpress. array1 est une sortie d'une fonction lors de la vérification du nombre de produits dans le chat de la marque et d'autres tableau donne les détails des marques. Merci

+2

Avez-vous essayé array_merge() –

Répondre

1

Je pense que je comprends ce que vous essayez de faire ...

Si ce sont des exemples de vos tableaux:

$CountArray = array("abu-garcia"=>1, 
       "daiwa"=>4, 
       "shimano"=>4); 
$DataArray = array(
      array("brand_id"=>36, "brand_name"=>"Abu Garcia", "brand_slug"=>"abu-garcia"), 
      array("brand_id"=>41, "brand_name"=>"Daiwa", "brand_slug"=>"daiwa"), 
      array("brand_id"=>39, "brand_name"=>"Shimano", "brand_slug"=>"shimano") 
); 

boucle Ensuite, à travers votre deuxième réseau pour construire un nouveau tableau , et en ajoutant la clé count du premier tableau comme ceci: d'une certaine manière la plus simple

$i = 0; 
foreach($DataArray as $ItemArray){ 
    foreach($ItemArray as $Key=>$Value){ 
     $NewArray[$i][$Key] = $Value; 
     $NewArray[$i]['count'] = 0; 
     if(isset($CountArray[$ItemArray['brand_slug']])){ 
      $NewArray[$i]['count'] = $CountArray[$ItemArray['brand_slug']];   
     } 
    } 
    ksort($NewArray[$i]); 
    $i++; 
} 
print_r($NewArray); 
+0

oui, thats ce que je cherchais. Merci @justbaron – kalle

+0

N'hésitez pas à accepter la réponse, et upvote si ça aide – JustBaron

0

vous pouvez faire comme ça. Supposons que votre premier nom de tableau soit $ first_array et le second $ second_array.

boucle juste le second comme

foreach($second_array as $index => $item) 
{ 
    $second_array[$index]['count'] = $first_array[$item['brand_slug']]; 
} 

echo "<pre>"; 
print_r($second_array); 
0

array_merge fusionne les éléments d'un ou plusieurs réseaux ensemble de sorte que les valeurs d'une sont ajoutées à la fin de la précédente. Il renvoie le tableau résultant.

Exemple #array_merge() exemple

<?php 
$array1 = array("color" => "red", 2, 4); 
$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4); 
$result = array_merge($array1, $array2); 
print_r($result); 
?>