我已经完成了一些搜索并找到了类似的问题,但大多数都有字符串键,而不是数字。基本上这就是我想要实现的目标:
样本数组
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,遗憾的是,我似乎无法理解正则表达式并且搜索文字字符串对我来说太难了......:{
答案 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;})