我搜索了Google和PHP文档,但尚未找到解决方案。例如。假设我想对数组的所有键执行strstr()以确定哪些键最接近我正在搜索的键,这样:
for($i=0;$i<count($array);$i++) {
if(@strstr(key($array[$i]), "$search")) {
print "Found: ". key($array[$i]). "<br>";
}
}
“key($ array [$ i])”是一个占位符,用于选择数组键作为执行strstr()的元素所需的任何函数或方法。
真诚地感谢任何帮助。
答案 0 :(得分:2)
使用 foreach 来遍历键,值对。
foreach($array as $key=>$value) {
if(@strstr($key, "$search")) {
print "Found: ". $key. "<br>";
}
}
更多参考: http://php.net/manual/en/control-structures.foreach.php
更新回复评论:
你可以使用
array_keys - 返回数组的所有键或键的子集
答案 1 :(得分:1)
foreach ($array as $key => $value)
{
if(strstr($key, $search))
{
print "Found: ". $key. "<br>";
}
}
答案 2 :(得分:1)
这样做......
$found = array_filter(
array_keys($array),
function($key) use ($search) {
return strpos($key, $search) !== FALSE;
});
$found
将是所有键的数组,其中包含的子字符串包含在$search
中。
如果您只想在另一个字符串中查找字符串,请使用strpos()
。
答案 3 :(得分:0)
另一个选择是在一个步骤中拉出所需的键,例如使用preg_grep()
。
$keys = preg_grep('/'.preg_quote($search, '/').'/', array_keys($array));
foreach ($keys as $key) {
echo "Found $key<br>";
}