有没有更简单的方法来确保数组中的值等于php中的值?
我目前正在通过这样做进行检查有没有更简单的方法来确保数组中的值等于php中的值?,php,Php,我目前正在通过这样做进行检查 if($user['medicineStudy'] == 1 || $user['thievingStudy'] == 1 || $user['miningStudy'] == 1 || $user['barterStudy'] == 1 || $user['craftingStudy'] == 1 || $user['smithingStudy'] == 1) 但当我添加值时,我必须手动键入它们,难道没有办法搜索所有值并确定它们是否等于1吗?数组中有很多其他信息
if($user['medicineStudy'] == 1 || $user['thievingStudy'] == 1 || $user['miningStudy'] == 1 || $user['barterStudy'] == 1 || $user['craftingStudy'] == 1 || $user['smithingStudy'] == 1)
但当我添加值时,我必须手动键入它们,难道没有办法搜索所有值并确定它们是否等于1吗?数组中有很多其他信息,但我要检查的值总是以研究
结尾
$found = false;
foreach ($user as $key => $val) {
if ($val == 1 && substr($key, -5) == 'Study') {
$found = true;
echo "Found a one in ".$key;
break;
}
}
if ($found) {
// do something
}
演示:
演示:您可以使用它来探测数组中的truthy条目。在您的情况下,您可以将其与筛选出感兴趣的条目相结合。尽管您需要一种变通方法来将其应用于密钥:
$true = array_filter(
array_intersect_key($user,
array_flip(preg_grep('/Study$/', array_keys($user))))
);
if ($true) {
您可以使用来探测数组中的truthy条目。在您的情况下,您可以将其与筛选出感兴趣的条目相结合。尽管您需要一种变通方法来将其应用于密钥:
$true = array_filter(
array_intersect_key($user,
array_flip(preg_grep('/Study$/', array_keys($user))))
);
if ($true) {
@抱歉,我不明白。你是说我跑得更快?哈哈!是的,你的回答和我的一样快了一点。我把我的拿走了,因为它是复制品,而你的票数提高了。@sgermain06对不起,我不明白。你是说我跑得更快?哈哈!是的,你的回答和我的一样快了一点。我把我的拿走了,因为它是你的复制品。