检查数组中字符串的一部分

时间:2013-01-17 09:09:10

标签: php arrays string search

我想检查一个字符串的一部分(不是全字符串,因为它是可变的)是否存在于数组中。

$test = array(
  0 => 'my searcg',
  1 => 'set-cookie: shdugdd',
  2 => 'viable: dunno'
);

我想要的是检查其中一个键是否包含字符串" set-cookie"如果是,请返回密钥。我无法检查完整字符串,因为set-cookie值每次都会有所不同。它可能也不存在,所以也需要检查它。

我知道我可以遍历数组并检查相同并获得结果,但我正在寻找更简洁/有效的答案。无法获得解决方案。

4 个答案:

答案 0 :(得分:6)

foreach($test as $key=> $value)
{
  if (strpos($value,'set-cookie') !== false) 
 {
  echo $key; // print key containing searched string
  }
}

这是另一种选择。 (working example

   $matches = preg_grep('/set-cookie/', $test); 
    $keys    = array_keys($matches); 

    print_r($matches);

答案 1 :(得分:1)

嘿,你可以使用php的array_walk函数

以下是详细说明。

http://php.net/manual/en/function.array-walk.php

感谢。

答案 2 :(得分:0)

function returnkey($arr) {
    foreach($arr as $key => $val) {
        if(strpos($val, 'set-cookie') !== false) {
            return $key;
        }
    } 
    return false;
}

答案 3 :(得分:0)

匹配数组中$ str的函数。

使用案例:$key = strInArray ( 'set-cookie', $array );

function strInArray ( $str, $array ) {

    if ( array_walk ( $array, function ( $val, $key ) use ( &$data, $str ) {
        if ( strpos ( $val, $str ) !== false ) {
            $data = $key;
        }
    }));

    return $data;
}