如何检查一个值是否存在于多个键相同的数组中

我有一个看起来像这样的数组:


[0] => Array (

    [status] => success

    [field] => voornaam

    )

[1] => Array (

    [status] => success

    [field] => achternaam

    )

[2] => Array (

    [status] => success

    [field] => telefoon

    )

[3] => Array (

    [status] => error

    [field] => email

    [message] => Vul een email in

    )

[4] => Array (

    [status] => success

    [field] => huisnummer

    )

[5] => Array (

    [status] => success

    [field] => postcode

    )

[6] => Array (

    [status] => success

    [field] => straat

    )

[7] => Array (

    [status] => success

    [field] => woonplaats

    )

我想检查error这些数组中是否存在。我怎样才能做到这一点?


这是构建数组的方式:


if (empty($accountform['voornaam'])) {

    $return[] = array('status' => 'error', 'field' => 'voornaam', 'message' => 'Vul een voornaam in');

} else {

    $return[] = array('status' => 'success', 'field' => 'voornaam');

}


if (empty($accountform['achternaam'])) {

    $return[] = array('status' => 'error', 'field' => 'achternaam', 'message' => 'Vul een achternaam in');

} else {

    $return[] = array('status' => 'success', 'field' => 'achternaam');

}


if (empty($accountform['telefoon'])) {

    $return[] = array('status' => 'error', 'field' => 'telefoon', 'message' => 'Vul een telefoonnummer in');

} else {

    $return[] = array('status' => 'success', 'field' => 'telefoon');

}


if (empty($accountform['email'])) {

    $return[] = array('status' => 'error', 'field' => 'email', 'message' => 'Vul een email in');

}else if(!filter_var($accountform['email'], FILTER_VALIDATE_EMAIL)){

    $return[] = array('status' => 'error', 'field' => 'email', 'message' => 'Vul een geldig emailadres in');

} else {

    $return[] = array('status' => 'success', 'field' => 'email');

}


慕侠2389804
浏览 84回答 3
3回答

慕的地6264312

$status_rows = array_column($your_array,'status');var_dump(in_array('error',$status_rows));您可以使用array_column获取所有状态并使用in_array检查它的存在。

元芳怎么了

您可以使用 array_search 并检查它是否存在$key = array_search('error', array_column($return, 'status'));if($key){   echo 'found';}else{   echo 'not found';} 

米脂

为什么您的代码不起作用是因为 $result 在另一个数组中具有值,例如 [0] 和 [1] 等等,就像这样..Array(    [0] => Array        (            [status] => error            [field] => telefoon            [message] => Vul een telefoonnummer in        )    [1] => Array        (            [status] => success            [field] => achternaam        ))因此,如果您希望代码正常工作,您将需要 $result[0]、$result[1] 等等。因此您的代码应该在 foreach 循环中foreach ($return as $key => $value) {    if (in_array('error', $value)) {        echo "There is an error";    }}$value 现在有没有 [0][1] 的 $result 数据,现在您可以与 in_array fn 进行比较。
打开App,查看更多内容
随时随地看视频慕课网APP