如果快速获取层层array包围的值?请进来看代码~
$sourceArray = array(2) {
["8e02bf00-901b-4168-b2ca-a7b368113d84"]=>// [ [ [这个键值是不知道的] ] ]
array(1) {
[0]=>
array(1) {
["value"]=>
string(10) "2014-03-29"
}
}
["b2e556f2-09e5-4f32-bef8-d51d52779e0f"]=>
array(1) {
[0]=>
array(1) {
["value"]=>
string(5) "18:30"
}
}
}
如上Joomla的数据,比如我要取得"2014-03-29"?
目前根据网上搜来的是用array_values:
$srcArray= array_values($sourceArray);
$eventDate = $srcArray[0][0]['value'];
这样总觉得有些浪费性能,毕竟多生成了一个没用的数组,我只是想先获得“日期”来判断下,如果“日期”没有过期,那么数组中其他的数据我还是要显示的~ ----------------------- 以下是精选回复-----------------------
答:这数组真蛋疼,试了下没找到好的方法,array_pop 不错可是会破坏数组,等高人。
答:array_filter($sourceArray, function($item) {
return $item['value'] > 'whatEverTime';
});
这样不行吗?
答:如果难点只在如何定位未知 key 的话 ... 下面这种方法可以帮你 ...
$value = current( $sourceArray )[0][0]; // 2014-03-29
php 5.4+ 适用 ...
如果要进行更复杂的操作 ... array_walk_recursive 这类直接忽视层级的函数也许有用 ...
答:看起来你追求的是性能快速。
我追求的是优雅,开发过简单的xpath语法来选择复杂数组里的元素。
我的代码没法开源,搜了一下,有类似实现: https://code.google.com/p/jsonpath/wiki/PHP
0条评论