我知道很多关于这个问题的问题,但是我找不到针对我的具体问题的正确答案.
我有一个包含以下值的数组 – “a”=> “1 | 1”,“b”=> “2 | 1,1 | 1”,“c”=> “3 | 2,2 | 1”
我想要做的只是找出数组中是否存在搜索字符串,它应该返回数组键.如果多个数组项具有搜索字符串,则应返回所有数组项.
在这个例子中,我期望得到“a”和“b”,但是当我使用strpos()时,它只给我“a”.
我怎么解决这个问题?
编辑**
这是我的代码
function array_search_i($str, $array)
{
$returnArray = array();
foreach ($array as $key => $value) {
if (strpos($str, $value) !== false) {
array_push($returnArray, $key);
}
}
return $returnArray;
}
解决方法:
注意!==运算符.我们还要检查类型..
$searchArray = array('2|2','1|1,3|3','1|1');
$search = '1|1';
foreach ($searchArray as $k=> $value) {
if (strpos($value,$search) !== false) {
$keysWithMatches[] = $k;
}
}
print_r($keysWithMatches);