2017-02-21 7 views
-1

私はこのように2つの配列を持っています。 ARRAY1:PHPで2つの異なる配列を使って新しい配列を作成する

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 
     ) 

私は次のようになります。新しい配列を作成します:

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 
     ) 

を両配列はワードプレスによってそこに作成されます。 array1は関数の出力であり、ブランドの中にある商品の数をチェックすると、他の配列はブランドの詳細を与えています。 おかげ

+2

あなたは(array_mergeを試してみました) –

答えて

1
私は私はあなたが何をしようとして理解すると思う

...これらはあなたの配列の例であれば

$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") 
); 

次に、あなたの二番目の配列をループが新しいアレイを構築しますあなたはこのように行うことができます最も簡単な方法で

$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

はい、私が探していたものをthatsの。ありがとう@justbaron – kalle

+0

答えを受け入れること自由に感じ、それが助けるならupvote – JustBaron

0

:、このような最初の配列からcountキーを追加します。 最初の配列名が$ first_arrayで、2番目の配列名が$ second_arrayであるとします。一方の値が前回の最後に追加されるよう

だけループが

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

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

array_merge ようなもう一つは一緒に一つまたはそれ以上の配列の要素をマージします。結果の配列を返します。

例#array_merge()の例

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