如何使用字母数组作为Php中foreach循环的过滤器



我试图循环通过一个数组,同时使用另一个数组作为一种";过滤器":

$aa = ["b","r","i", "g", "i", "t", "t", "e"];
$bb = ["a", "e", "i", "o", "u", "r"];
foreach($aa as $b){
if($b == $bb){
echo "Give me an ". $b;
echo "n";
}else{
echo "Give me a ". $b;
echo "n";
}
}

所以我希望它将$aa中的字母与$bb中的字母列表进行比较,以确定它是否应该呼应";一个或";a";在语法上是正确的。我唯一能让它正常工作的方法就是这样做:

foreach($aa as $b){
if($b == "a" or $b == "e" or $b == "i" or $b == "o" or $b == "u" or $b == "r"){
echo "Give me an ". $b;
echo "n";
}else{
echo "Give me a ". $b;
echo "n";
}
}

您应该使用in_array这是php.net、中的官方文档

我会这样做:

foreach($aa as $b){
if(in_array($b, $bb)){
echo "Give me an ". $b;
echo "n";
}else{
echo "Give me a ". $b;
echo "n";
}
}

试试这个:(

<?php
$aa = ["b","r","i", "g", "i", "t", "t", "e"];
$bb = ["a", "e", "i", "o", "u", "r"];
foreach($aa as $b){
if(in_array($b, $bb)){
echo "Give me an ". $b . "<br/>";
echo "n";
}else{
echo "Give me a ". $b . "<br/>";
echo "n";
}
}
exit(0);

输出:

Give me a b
Give me an r
Give me an i
Give me a g
Give me an i
Give me a t
Give me a t
Give me an e

最新更新