php – 将数组拆分为子数组
发布时间:2020-12-13 17:42:29 所属栏目:PHP教程 来源:网络整理
导读:我想拆分一个数组: $o = json_decode('[{"id":"1","color":"green"},{"id":"2",{"id":"3","color":"yellow"},{"id":"4","color":"green"}]'); 根据每个项目的颜色属性,填充相应的子数组 $a = array("green","yellow","blue");function isGreen($var){ retur
我想拆分一个数组:
$o = json_decode('[{"id":"1","color":"green"},{"id":"2",{"id":"3","color":"yellow"},{"id":"4","color":"green"}]'); 根据每个项目的颜色属性,填充相应的子数组 $a = array("green","yellow","blue"); function isGreen($var){ return($var->color == "green"); } $greens = array_filter($o,"isGreen"); $yellows = array_filter($o,"isYellow"); // and all possible categories in $a.. 我的$a有一个长度> 20,并且可以增加更多,所以我需要一般的方法而不是手工编写功能 似乎没有函数array_split来生成所有已过滤的数组 解决方法
你可以这样做:
$o = json_decode('[{"id":"1","color":"green"}]'); $greens = array_filter($o,function($item) { if ($item->color == 'green') { return true; } return false; }); 或者,如果您想创建一些非常通用的东西,您可以执行以下操作: function filterArray($array,$type,$value) { $result = array(); foreach($array as $item) { if ($item->{$type} == $value) { $result[] = $item; } } return $result; } $o = json_decode('[{"id":"1","color":"green"}]'); $greens = filterArray($o,'color','green'); $yellows = filterArray($o,'yellow'); 在我的第二个例子中,你可以传递数组,并根据什么值告诉函数过滤什么(例如颜色或其他一些未来的属性). 请注意,我没有检查属性是否真的存在任何错误 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |