2012-12-14 3 views
0

foreach 루프에서 in_array()를 사용하는 데 문제가 있습니다. 이것이 가능한지 또는 더 나은 방법이있는 곳에서 우스꽝스러운 일을하고 있는지 확실하지 않습니다. 내가하고 싶은 일은 모든 항목을 살펴보고 해당 항목 ID가 배열의 항목 ID와 일치하면 true를 반환하고 항목의 가격을 실행 합계에 추가합니다. $ 가격은 항목의 가격 ($ 0)가 무료라고하지 않는 한 그것이 사실이었다 물론 다음 이상의 0 인 경우 이후foreach 루프 내의 PHP in_array()

$price = 0; 
$result = false; 
$array = array(1533, 2343, 2333); 

foreach($order['items'] as $item){ 
    if(in_array($item['Item'], $array)){ 
    $result = true; 
    $price += $item['Price']; 
    } 
} 

**UPDATED** 
Here is the order array 

[items] => Array 
    (
     [0] => Array 
      (
       [Item] => 139957 
       [OrderID] => 16025 
       [SizeID] => 24 
       [Price] => 46.00 
      ) 

     [1] => Array 
      (
       [Item] => 2343 
       [OrderID] => 16025 
       [SizeID] => 12 
       [Price] => 32.00 
      ) 
    ) 

[data] => Array 
    (
    ) 
+3

표시된 3 행의 배열 사용을 확인하십시오. $ array = array (....);와 비교할 기본 배열은 무엇입니까? 그 모양은 어떻게됩니까? –

+0

'$ order'의 정의를 보여주세요. – 3dgoo

+0

코드가 정상적으로 보입니다. 정확히 무엇이 잘못 되었습니까? – ualinker

답변

2
$price = 0; 
$result = false; 
$array = array(1533, 2343, 2333); 

foreach($order['items'] as $item){ 
    if(in_array($item['Item'], $array)){ 
    $result = true; 
    $price += $item['Price']; 
    } 
} 

if ($result) 
{ 
    echo 'was true'; 
} 
else 
{ 
    echo 'was false'; 
} 

기술적으로 당신도 $ 결과 변수가 필요하지 않습니다.

+0

도움을 주셔서 감사합니다,이 일을하고 db에서 문자열을 당기로 이동할 수있었습니다. –