我已经搜索了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(( 的元素所需的任何函数或方法。
任何帮助都真诚地感谢。
使用 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 — 返回数组的所有键或键的子集
http://php.net/manual/en/function.array-keys.php
foreach ($array as $key => $value)
{
if(strstr($key, $search))
{
print "Found: ". $key. "<br>";
}
}
这将做到这一点...
$found = array_filter(
array_keys($array),
function($key) use ($search) {
return strpos($key, $search) !== FALSE;
});
代码板。
$found
将是所有键的数组,其中包括一个子字符串,该子字符串包含在 $search
中。
如果您只是在寻找另一个字符串内部是否存在字符串,请使用 strpos()
。
另一种选择是一步拉出所需的键,例如使用 preg_grep()
.
$keys = preg_grep('/'.preg_quote($search, '/').'/', array_keys($array));
foreach ($keys as $key) {
echo "Found $key<br>";
}