php选择索引包含数组

时间:2010-12-17 12:51:09

标签: php arrays search recursion

是否有一个函数可以在数组中搜索它是否包含文本的一部分 就像jquery(':contains')

一样

然后返回它所在的索引:) 这是一个帮助您想象它的例子:)

$arr = array(
  [0] => 'hello world',
  [1] => 'foo',
  [2] => 'bar',
);
$a = arr_contains('o',$arr); //returns array(1,0);
$b = arr_contains('fo',$arr);//return array(1);
$c = arr_contains('a',$arr);//return array(2);
$d = arr_contains('hello',$arr);//return array(0);

如果递归可以是一个加号:)

1 个答案:

答案 0 :(得分:3)

不,你必须编写一个自定义函数来匹配子字符串:

function arr_contains($str, $arr) {
    $ret = array();
    foreach ($arr as $k => $v) {
        if (is_array($v)) {
            if ($subarr = arr_contains($str, $v)) {
                $ret[] = $subarr;
            }
        } else if (strpos($v, $str) !== false) {
            $ret[] = $k;
        }
    }
    return $ret;
}