php - 如何检查一个值是否存在于多个键相同的数组中
问题描述
我有一个看起来像这样的数组:
[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');
}
if (empty($accountform['huisnummer'])) {
$return[] = array('status' => 'error', 'field' => 'huisnummer', 'message' => 'Vul een huisnummer in');
} else {
$return[] = array('status' => 'success', 'field' => 'huisnummer');
}
if (empty($accountform['postcode'])) {
$return[] = array('status' => 'error', 'field' => 'postcode', 'message' => 'Vul een postcode in');
} else {
$return[] = array('status' => 'success', 'field' => 'postcode');
}
if (empty($accountform['straat'])) {
$return[] = array('status' => 'error', 'field' => 'straat', 'message' => 'Vul een straat in');
} else {
$return[] = array('status' => 'success', 'field' => 'straat');
}
if (empty($accountform['woonplaats'])) {
$return[] = array('status' => 'error', 'field' => 'woonplaats', 'message' => 'Vul een woonplaats in');
} else {
$return[] = array('status' => 'success', 'field' => 'woonplaats');
}
我试过了:
if (in_array('error', $return)) {
echo "There is an error";
}
但是 if 语句永远不会触发。
解决方案
$status_rows = array_column($your_array,'status');
var_dump(in_array('error',$status_rows));
您可以使用array_column获取所有状态并使用in_array检查它的存在。
推荐阅读
- php - Mysql中的Json字段在Twig中显示但在Controller中为空
- string - 如何在 Qt 字符串中单独截断主 URL
- python - Python Selenium Google 登录机器人
- node.js - Mongo 错误:$sort 阶段必须至少有一个排序键
- java - java - 如何在java sql中的spring boot中每次从jdbcTemplate.queryForList(sql)中删除列名
- javascript - React Native:在切换底部导航选项卡时设置参数
- javascript - 访问被点击的元素
- css - Safari浏览器的媒体查询
- r - 按日期查找表中的最新行
- html - 容器对齐问题