2017-02-21 10 views
-1

저는 2 개의 배열을 가지고 있습니다. 배열 1 :PHP에서 두 개의 다른 배열을 사용하여 새 배열을 만듭니다

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 
     ) 

모두가 배열이 생성됩니다 워드 프레스에 의해 :

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 
     ) 

나는 다음과 같이해야 새로운 배열을 만들려고합니다. 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") 
); 

그런 다음 두 번째 배열을 통해 루프가 새로운 배열을 구축 그리고 다음과 같이 첫 번째 배열에서 count 키를 추가 :

$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

이 그래, 내가 무엇을 찾고 있었다 이잖아 시도해 봤어. 감사합니다 @justbaron – kalle

+0

답변을 받아 들일 수 있다면, 그리고 upvote 도와주세요 – JustBaron

0

를이 같이 할 수있는 간단한 방법. 첫 번째 배열 이름이 $ first_array이고 두 번째 배열 이름이 $ 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); 
?>