2011-04-27 5 views
1

나는 지금까지 꽤 잘하고있는 운송 계산기를 작성하려고합니다. 입력은 주문의 제품 배열입니다. 내가 만난 문제는 제품 목록에있는 일부 제품의 수량 값이 1보다 큰 것입니다. 계산기가 foreach을 사용하기 때문에 수량 값 대신 모든 제품을 분리하는 것이 좋습니다. 수량 필드의 값만큼 제품 항목을 복사 할 수있는 방법이 있습니까? 그렇다면 확장 배열을 얻을 수 있습니까?PHP - 수량 값에 따라 제품 목록 배열에 제품을 복제하는 방법

+3

일부 코드는 게시 할 수 있습니까? – glomad

답변

2

더 좋은 해결책은 for 루프를 사용하는 것입니다. 코드에서 실제로 X 번을 반복해야한다고 가정하면 X는 제품의 수량입니다. 코드를 보지 않고, 난 단지 당신의 데이터 구조의 스키마에 대한 추측 할 수 있지만,이 조각은 적합한 솔루션으로 당신을 가리킬 수 있습니다 : 당신이 당신의 질문에 설명 된 것처럼

foreach ($products as $product) { 
    $productId = $product["id"]; 
    for ($i = 0; $i < $product["quantity"]; $i++) { 
     // your code here 
    } 
} 

내가이 문제를 접근하고 당신에 대하여 조언한다. for 루프가 수행 할 작업을 시뮬레이트하기 위해 새로운 배열을 생성하면 메모리와 CPU가 낭비되고 확장 성은 떨어집니다.

+0

간단히 아름답습니다! 나는 아직 php를 가진 초보자이다. for 루프는 결코 내 마음을 넘어선 적이 없지만, 물론 완벽한 해결책이다. 당신도 데이터 구조를 추측 했지 만, 장래에 코드 샘플을 게시하는 것을 명심할 것입니다. 고맙습니다! – Toxid

0

코드를 보지 않고 대답하기가 어렵지만 이렇게 할 수 있습니까?

$products = array_merge($products, array_fill(0, $quantity, $product)); 
관련 문제