一个foreach里面的php in_array()

时间:2012-12-14 04:38:48

标签: php arrays foreach

我在foreach循环中使用in_array()时遇到问题。不确定这是否可能,或者我是否在做有更好方法的荒谬事情。我想要做的是遍历所有项目,如果他们的项目ID与数组中的一个匹配,则返回true并将项目的价格添加到runninng total。

$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
    (
    )

1 个答案:

答案 0 :(得分: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';
}

从技术上讲,你甚至不需要$ result变量,因为如果$ price大于0,那么当然这是真的,除非item的价格是免费的($ 0)。