我有一些看起来像这样的PHP数组......
$cars1 = array("Volvo", "Volvo", "Volvo");
$cars2 = array("Volvo", "BMW", "Toyota");
$cars3 = array("Volvo");
$cars4 = array("Volvo", "BMW", "Volvo");
$cars5 = array("BMW", "Toyota");
我需要检测阵列何时包含所有沃尔沃或其中只有一个沃尔沃。所以在上面的例子中,只有$ cars1和$ cars3会通过。
任何人都有类似的例子我可以看到吗?
答案 0 :(得分:1)
你正在寻找像this
这样的东西function arrayEq($array,$val)
{
foreach($array as $item)
{
if($item != $val)
{
return false;
}
}
return true;
}
$cars1 = array("Volvo", "Volvo", "Volvo");
$cars2 = array("Volvo", "BMW", "Toyota");
$cars3 = array("Volvo");
$cars4 = array("Volvo", "BMW", "Volvo");
$cars5 = array("BMW", "Toyota");
var_dump(arrayEq($cars1,"Volvo"));
var_dump(arrayEq($cars2,"Volvo"));
var_dump(arrayEq($cars3,"Volvo"));
var_dump(arrayEq($cars4,"Volvo"));
var_dump(arrayEq($cars5,"Volvo"));
函数的作用是循环传递的数组,每个传递数组,并且数组中的每个项目都将它与我们传入的比较值进行比较。
如果数组中的一个项目与comapring值不匹配,则返回false。这也打破了循环。如果循环可以一直进行,那么我们知道所有的值都是相同的并返回true
请注意,这是区分大小写的"Volvo" != "volvo"
,但您可以使用strtoupper
或strtolower
答案 1 :(得分:0)
使用array_unique()
函数后跟一个简单的if
条件,如下所示:
$cars1 = array("Volvo", "Volvo", "Volvo");
$car = array_unique($cars1);
if(count($car) == 1 && $car[0] == 'Volvo'){
// the condition has passed
// Only $cars1 and $cars3 would get through this if condition
}
// like this, apply the same procedure for other arrays