检查多维数组值是否相同

时间:2017-03-06 03:32:28

标签: php arrays multidimensional-array

我有一个多维数组

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。

3 个答案:

答案 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);