如果您想过早优化,有一种更快的方法。
<?php
$arr = array();
foreach ($data->events as $address) {
$arr[$address->getAddressString()] = 'a'; // value doesn't matter
// using inherent uniqueness of keys.
}
// $addrs = array_keys($arr);
// optionally, take all those array keys and put them in values.
// keys would become regular numeric keys
?>
这应该比其他任何答案都快。但是,如果你正在处理大量的数据,它只会有所作为。
如果你想回声,你会想要做array_keys
如果你没有在上面。这是一条线:
echo implode(', ',array_keys($arr)); // comma separated list of unique values
还是这个,为排序:
$addrs = array_keys($arr);
sort($addrs);
echo implode(', ',$addrs); // sorted list
最后,我想补充一点,你应该被越来越独特,下令从你的数据模型结果首先。在简单的任务中,数据库更快更好,比如定购独特的结果要比以前的PHP代码要好。
SELECT DISTINCT `address` FROM `table`
WHERE `city` LIKE 'Lodi'
ORDER BY 'address' ASC
不要选择在第一名重复 - 你是如何查询数据库 – Steve
这是我继承的代码,它没有得到的文档,是相当意大利面条一样,我会高兴地更改数据库的方式查询,但由于时间一分钟内的限制,我只是得到这个工作很重要。 它看着事件模型,并通过关系public function getAddressString(){ return $ this-> venue-> address-> building_name。 ','。 $ this-> venue-> address-> street_name。 ','。 $ this-> venue-> address-> city。 ','。 $这个 - > venue->地址 - > post_code; } 我不确定数据如何被拔出,但我知道该函数正在其他地方使用 – DevAL