在 PHP 中选择数组键


Selecting array key in PHP

我已经搜索了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>";
}