为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕侠2389804 2022-07-16 18:49:35
我有一个看起来像这样的数组:[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');}
查看完整描述

3 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

$status_rows = array_column($your_array,'status');

var_dump(in_array('error',$status_rows));

您可以使用array_column获取所有状态并使用in_array检查它的存在。


查看完整回答
反对 回复 2022-07-16
?
元芳怎么了

TA贡献1798条经验 获得超7个赞

您可以使用 array_search 并检查它是否存在


$key = array_search('error', array_column($return, 'status'));

if($key){

   echo 'found';

}else{

   echo 'not found';


查看完整回答
反对 回复 2022-07-16
?
米脂

TA贡献1836条经验 获得超3个赞

为什么您的代码不起作用是因为 $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 进行比较。


查看完整回答
反对 回复 2022-07-16
  • 3 回答
  • 0 关注
  • 83 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信