Php 如何检查键相同的多个数组中是否存在值
我得到了一个如下所示的数组:Php 如何检查键相同的多个数组中是否存在值,php,arrays,Php,Arrays,我得到了一个如下所示的数组: [0] => Array ( [status] => success [field] => voornaam ) [1] => Array ( [status] => success [field] => achternaam ) [2] => Array ( [status] => success [field] => telefoon )
[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
)
我想检查这些数组中是否存在错误
。我该怎么做
以下是阵列的构建方式:
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));
您可以使用来获取所有状态,并使用来检查它是否存在。您可以使用数组搜索并检查它是否存在
$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现在有$result数据,没有[0][1],现在可以与数组中的fn进行比较。如果使用数组搜索,请确保进行严格比较,因为在第0个索引中也可以找到特定的键。