检查PHP数组是否包含非特定字符串
这个问题不是我试图在数组中查找特定的字符串。我想知道检查数组中是否存在字符串的最简单方法。例如:检查PHP数组是否包含非特定字符串,php,arrays,Php,Arrays,这个问题不是我试图在数组中查找特定的字符串。我想知道检查数组中是否存在字符串的最简单方法。例如: [1,2,3] // this does NOT contain a string [1,'two',3] // this DOES contain a string 我能想到的最好的方法是遍历所有数组项,然后像这样对每个数组项运行_string() $array = [1,'two',3]; $hasString = false; foreach($array as $item){ i
[1,2,3] // this does NOT contain a string
[1,'two',3] // this DOES contain a string
我能想到的最好的方法是遍历所有数组项,然后像这样对每个数组项运行_string()
$array = [1,'two',3];
$hasString = false;
foreach($array as $item){
if (is_string($item)){
$hasString = true;
}
}
这可以工作,但感觉笨重。有没有一种更好的方法不需要像这样在数组中循环,或者这是最好的方法?您也可以使用它来检查:
<?php
function checkString($arr) {
if (count(array_filter($arr, 'is_string'))) {
return "Array has string";
} else {
return "Array hasn't any strings";
}
}
echo checkString([1,'two',3]);
echo "<br/>";
echo checkString([1,2,3]);
您的也可以用来检查:
<?php
function checkString($arr) {
if (count(array_filter($arr, 'is_string'))) {
return "Array has string";
} else {
return "Array hasn't any strings";
}
}
echo checkString([1,'two',3]);
echo "<br/>";
echo checkString([1,2,3]);
你的因为这与米兰现在的答案有点不同,所以我将此评论作为一个答案发布
function array_has_string($array){
return count(array_filter($array, 'is_string')) ? true : false;
}
$test_1 = array_has_string([1,'two',3]);
//$test_1 = true
$test_2 = array_has_string([1,2,3]);
//$test_2 = false
因为这与米兰现在的回答有点不同,所以我将这篇评论作为一个回答
function array_has_string($array){
return count(array_filter($array, 'is_string')) ? true : false;
}
$test_1 = array_has_string([1,'two',3]);
//$test_1 = true
$test_2 = array_has_string([1,2,3]);
//$test_2 = false
你必须逐个元素检查,直到你找到一个字符串为止,以判断数组中是否有字符串。所以你唯一能改变的就是你打破了代码>如果你找到一个字符串,那么你就可以在代码中循环,这样你就可以尽快停止。数组\u walk,但最终还是一样的。“或者这是最好的吗”-如果使用了
break
,并且数组有大量的值,那么就足够了。你必须逐个元素检查,直到找到一个字符串,否则,判断数组中是否有字符串。所以你唯一能改变的就是你打破了代码>如果你找到一个字符串,那么你可以在代码中循环,这样你就可以尽快停止。array\u walk,但最终还是一样的。“或者这是它得到的最好的结果吗”-如果使用break
,并且数组有大量的值hanks,这就足够了,这更像我想要的。检查字符串是否存在的单行检查。我将其保存到代码中的一个变量中,以便于理解和重用:$arrayHasString=count(array\u filter($array,'is\u string')代码>我可能会将其转换为一个函数,以便更好地重用。:)<代码>函数数组_has_string($array){return count(数组_filter($array,'is_string'))}
如果数组中有多个字符串不是true
或false
,它将返回数字。在返回之前处理这个返回booleen现在函数数组有字符串($array){return count(数组过滤器($array,'is_string'))?true:false;}
谢谢,这更像是我想要的。检查字符串是否存在的单行检查。我将其保存到代码中的一个变量中,以便于理解和重用:$arrayHasString=count(array\u filter($array,'is\u string')代码>我可能会将其转换为一个函数,以便更好地重用。:)<代码>函数数组_has_string($array){return count(数组_filter($array,'is_string'))}
如果数组中有多个字符串不是true
或false
,它将返回数字。只需在返回前处理该返回booleen nowfunction array_has_string($array){返回计数(array_filter($array,'is_string'))?true:false;}