2013-10-03 50 views
0

对象的数组我有以下列格式的数组: -过滤基于条件

[ 
{ name : "Foo", 
    type : "Bar" 
}, 
{ 
    name : "Foo", 
    type : "Row" 
}, 
{ 
    name : "Foo" 
} 
] 

我想删除“富”的出现,只有当它没有一个类型。基本上,只要类型不同,在数组中可以有重复,并且在没有类型的情况下不能重复。任何帮助表示赞赏!

谢谢!

+1

问题要求代码必须表现出对问题的理解最小正在解决。包括**尝试的解决方案**,**为什么他们没有工作**,以及预期的结果。 – showdev

回答

2

我假设你正在使用json_decoded对象数组。在这种情况下,你可以运行一个简单的array_filter()这样的:

$filtered_array = array_filter($array, function($item) { 
    return isset($item->type); 
}); 
+0

嘿迈克,谢谢你的回复!如果没有设置类型,我不想删除所有项目。我只想删除只有在类型设置有重复时才设置类型的项目。我希望你明白我在说什么? – Madhan

+0

@MadhanPadmanabhan好吧我想我误解了'我想删除“Foo”的发生只有当它没有类型'的声明。在这种情况下,您可能需要更手动地遍历数组,并可能将元数据临时存储到单独的数据结构中,然后可以利用这些数据结构确定原始数组中的哪些元素需要过滤。我不打算在这里解决一个解决方案,因为我希望看到你先尝试一下。 –