2017-10-26 1 views
0

이것은 내 배열 소스입니다.더 많은 키로 다차원 배열을 그룹화하는 방법

//array for all reception 
    $reception = array(
     array('code'=>'AB202','order'=>'111111','qty'=>'50.000'), 
     array('code'=>'AB202','order'=>'111111','qty'=>'50.000'), 
     array('code'=>'AB202','order'=>'222222','qty'=>'50.000'), 
     array('code'=>'AB300','order'=>'666666','qty'=>'100.000'), 
     array('code'=>'AB300','order'=>'666666','qty'=>'120.000'), 
     array('code'=>'AB300','order'=>'777777','qty'=>'120.000')   
     ); 

코드 AB202 순서 111,111 및 222,222

111111은 수량 => 50, 수량과 동일 순서에 해당 => 50
순서 222,222는 수량 => 50

코드 AB300 같음 같음 순서 AND 666666 777777

순서 666666 동일 수량 => 100 수량 => 120

777,777 수량이 동일 순서 => (120)

나는 다음 각 수량을 추가, 하나가 아닌 경우 코드 키 또는 주문 키가 있는지 확인하는 모든 리셉션을 통해이

Array 
(
    [AB202] => Array //array code 
    (
     [111111] => Array  //array order 
      (   
       [0] => 50.000 // qty 
       [1] => 50.000 
     ) 
     [222222] => Array 
      (   
       [0] => 50.000 
     ) 
    ) 

    [AB300] => Array 
    (
     [666666] => Array 
      (   
       [0] => 100.000 
       [1] => 120.000 
     ) 
     [777777] => Array 
      (   
       [0] => 120.000 
     ) 
    ) 


) 

답변

0

루프 같은 코드 및 순서에 따라 그룹을 원하는

$newArr = array(); 
foreach ($reception as $code) { 
    if (!array_key_exists($code['code'], $newArr)){ 
     $newArr[$code['code']] = array(); 
    } 
    if (!array_key_exists($code['order'], $newArr[$code['code']])) { 
     $newArr[$code['code']][$code['order']] = array(); 
    } 
    array_push($newArr[$code['code']][$code['order']], $code['qty']); 
} 
+0

코드는 테스트하지는 않았지만 해결하려면 도움이 될 것입니다. – Erwin

+0

고맙습니다. – phptraining

+0

환영합니다. 네가 원한다면 조금만 닦아 라. :) – Erwin

관련 문제