搜索关键字返回键的数组

时间:2012-01-19 02:38:04

标签: php regex arrays

我已经完成了一些搜索并找到了类似的问题,但大多数都有字符串键,而不是数字。基本上这就是我想要实现的目标:

样本数组

 Array (
      [0] => comments=DISABLED
      [1] => img_carousel=red.jpg,yellow.png,blue.jpg
      [2] => twitter=http://www.twitter.com
 )

运行这样的事情:

 $img_carousel = explode('=', $arr[array_search('img_carousel', $arr)]);

将返回:

 Array (
      [0] => img_carousel
      [1] => red.jpg,yellow.png,blue.jpg
 )

然而,它不会,只返回0 / FALSE。我猜测是因为array_search搜索完全匹配而不搜索字符串中的关键字?

我尝试使用preg_grep,遗憾的是,我似乎无法理解正则表达式并且搜索文字字符串对我来说太难了......:{

3 个答案:

答案 0 :(得分:2)

从php 5.3开始,您可以按照以下示例进行操作:

$result = array_filter($arr, function($e) {
    return strpos($e, 'img_carousel') !== false;
});

或者如果您使用旧版本:

function ifElementContainsImgCarousel($e)
{
    return strpos($e, 'img_carousel') !== false;
}
$result = array_filter($arr, 'ifElementContainsImgCarousel');

答案 1 :(得分:2)

你想要这样的东西:

$img_carousel = explode('=', array_shift(preg_grep('/img_carousel=/', $arr)))

答案 2 :(得分:1)

您可以使用array_filter获取包含关键字的元素。

array_filter($sample_array, function($var) use ($keyword) {return strpos($var, $keyword) !== false;})