如何找出,如果所有特定的键在多个阵列中获得特定值?

时间:2014-08-15 14:35:49

标签: php arrays search

我有一个多数组,我想找出(在PHP中),如果在每个子数组中,键'orderOK'为TRUE。如果它丢失,或者只在一个子数组中为FALSE,则该函数必须返回FALSE。

下面的数组只是一个例子,可能会发生这种情况。

Array
(
    [order] => Array
    (
        [cargo] => Array
        (
                [0] => Array
                (
                        [start] => 12345
                        [end] => 23456
                        [length] => 120
                        [orderOK] => TRUE
                )

                [1] => Array
                (
                        [start] => 10234
                        [end] => 07653
                        [length] => 234
                        [orderOK] => FALSE
                )

                [2] => Array
                (
                        [start] => 10234
                        [end] => 07653
                        [length] => 234
                )
        )
    )
)

1 个答案:

答案 0 :(得分:1)

通过foreach循环运行它。我创建了一个单独的函数,但你也可以将foreach循环保持在与数组相同的函数中。

<?php 
//assuming $array contains your values

$result = $this->orderok_check($array);  //call your function
if($result){
    //your function returned TRUE   
}else{
    //your function returned FALSE
}

function orderok_check($array) {
    foreach($array['order']['cargo'] as $item){
        if(!isset($item['orderOK']) OR !$item['orderOK']){
            return FALSE;    
        }
    }

    return TRUE;
}
?>