我有一个多维数组
Array
(
[0] => Array
(
[entity_id] => 1
[order_id] => 1
[is_accepted] => 0
[is_canceled] => 0
[is_completed] => 0
)
[1] => Array
(
[entity_id] => 1
[order_id] => 1
[is_accepted] => 0
[is_canceled] => 0
[is_completed] => 0
)
)
我想检查两个[is_canceled]值是否为1,它返回true。 如果[is_canceled]值之一为1,则返回false。
答案 0 :(得分:1)
检查此代码段,
var_dump(!in_array(0,array_column($orders,'is_canceled')));
array_column - >返回输入数组
中单个列的值in_array - >检查数组中是否存在值
试一试,这应该有用。
答案 1 :(得分:0)
您只需要一个简单的foreach
循环来迭代对象数组,以检查每个对象的is_canceled
字段。
function containsNoCancelledOrders($orders) {
foreach ($orders as $order) {
if ($order["is_canceled"]) return false;
}
return true;
}
$orders = [
[
"entity_id" => 1,
"order_id" => 1,
"is_accepted" => 0,
"is_canceled" => 0,
"is_completed" => 0,
],
[
"entity_id" => 1,
"order_id" => 1,
"is_accepted" => 0,
"is_canceled" => 0,
"is_completed" => 0,
],
];
var_dump($orders);
echo containsNoCancelledOrders($orders) ? 'true' : 'false';
答案 2 :(得分:0)
试试这个:
function check($array)
{
if ($array[0]['is_cancelled'] == 0 && $array[1]['is_cancelled'] == 0) {
return false;
}
return true;
}
$check = check($array);
var_dump($check);