2

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

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

我想要的是检查任何一个键是否具有字符串“set-cookie”,如果是,则返回该键。我无法检查完整的字符串,因为set-cookie每次的值都会不同。它可能也不存在,因此也需要检查。

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

4

4 回答 4

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

这是另一种选择。(工作示例

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

    print_r($matches);
于 2013-01-17T09:12:29.810 回答
1

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

这是详细的解释。

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

谢谢。

于 2013-01-17T09:14:07.623 回答
0
function returnkey($arr) {
    foreach($arr as $key => $val) {
        if(strpos($val, 'set-cookie') !== false) {
            return $key;
        }
    } 
    return false;
}
于 2013-01-17T09:13:53.640 回答
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;
}
于 2013-01-17T09:31:25.443 回答