我想检查一个字符串的一部分(不是全字符串,因为它是可变的)是否存在于数组中。
$test = array(
0 => 'my searcg',
1 => 'set-cookie: shdugdd',
2 => 'viable: dunno'
);
我想要的是检查其中一个键是否包含字符串" set-cookie"如果是,请返回密钥。我无法检查完整字符串,因为set-cookie
值每次都会有所不同。它可能也不存在,所以也需要检查它。
我知道我可以遍历数组并检查相同并获得结果,但我正在寻找更简洁/有效的答案。无法获得解决方案。
答案 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)
答案 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;
}