匹配数组中的字符串 strpos(): 空针
Match a string in an array strpos(): Empty needle
我有一个来自数据库的字符串,我想将其与数组匹配,但它导致错误提示:
strpos(): Empty needle in line X
if (!isset($_SESSION['arry'])) {
$_SESSION['arry'] = array();
}
$imp = 42;
$arrys = $_SESSION['arry'];
foreach($arrys as $string)
{
if(strpos($imp, $string) !== false)
{
$pow =1;
break;
}
}
if($pow==1){ exit; }
数组如下所示:
Array
(
[0] => 218
[1] => 219
[2] => 218
[3] => 220
[4] => 222
[5] => 42
[6] => 223
)
直接在数组中搜索$imp
即可,无需循环:
$imp = 42;
$arrys = $_SESSION['arry'];
if(in_array($imp, $arrys)) {
$pow = 1;
}
不清楚数组元素中是否有空格,因此您可能需要 trim()
它们:
in_array($imp, array_map('trim', $arrys))
另外,使用 strpos()
你会得到误报。如果 $imp = 42
它将匹配 422
、142
、999942777
等
你在做相反的事情,在 42 中搜索字符串,而不是去
strpos($string, $imp)
试试这个:(更新)
<?php
$_SESSION['arry'] = array(236,235,239,243,246);
$imp = 239;
$arrys = $_SESSION['arry'];
$arrys = array_unique($arrys);
$pow = "";
print "<pre>";
print_r($arrys);
print "</pre>";
foreach($arrys as $string)
{
if($string == $imp) {
$pow = 1; echo "we have".$imp."in array<br/>";
}
else{
$pow = 0; echo "sorry".$imp."wasn't found in array<br/>";
}
}
?>
我有一个来自数据库的字符串,我想将其与数组匹配,但它导致错误提示:
strpos(): Empty needle in line X
if (!isset($_SESSION['arry'])) {
$_SESSION['arry'] = array();
}
$imp = 42;
$arrys = $_SESSION['arry'];
foreach($arrys as $string)
{
if(strpos($imp, $string) !== false)
{
$pow =1;
break;
}
}
if($pow==1){ exit; }
数组如下所示:
Array
(
[0] => 218
[1] => 219
[2] => 218
[3] => 220
[4] => 222
[5] => 42
[6] => 223
)
直接在数组中搜索$imp
即可,无需循环:
$imp = 42;
$arrys = $_SESSION['arry'];
if(in_array($imp, $arrys)) {
$pow = 1;
}
不清楚数组元素中是否有空格,因此您可能需要 trim()
它们:
in_array($imp, array_map('trim', $arrys))
另外,使用 strpos()
你会得到误报。如果 $imp = 42
它将匹配 422
、142
、999942777
等
你在做相反的事情,在 42 中搜索字符串,而不是去
strpos($string, $imp)
试试这个:(更新)
<?php
$_SESSION['arry'] = array(236,235,239,243,246);
$imp = 239;
$arrys = $_SESSION['arry'];
$arrys = array_unique($arrys);
$pow = "";
print "<pre>";
print_r($arrys);
print "</pre>";
foreach($arrys as $string)
{
if($string == $imp) {
$pow = 1; echo "we have".$imp."in array<br/>";
}
else{
$pow = 0; echo "sorry".$imp."wasn't found in array<br/>";
}
}
?>