我在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
(
)
答案 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)。