我有一个foreach迭代器,其中有500 group items
个。如何删除foreach中的重复值?
foreach ($data as $data) {
if(!empty($data['name'])){ //check if have $data['name']
$name = $data['name'];
$id = $data['id'];
$date = $data['date'];
$link = $data['link'];
if(strpos($link, '.ads.')){
continue; //remove all the link contains `.ads.`
}else{
// if `$link` is not repeat, echo the below data. how to use array_unique, remove all the values which repear in `$link` part?
echo $name;
echo $id;
echo $date;
echo $link;
}
}
答案 0 :(得分:15)
使用array_unique
:
foreach (array_unique($data) as $d) {
// Do stuff with $d ...
}
虽然技术上可以用相同的名称调用数组及其元素,但它必然会导致编程错误和混乱。
答案 1 :(得分:3)
看看你做了什么:
foreach ($data as $data)
您正在覆盖$data
的内容,然后在您希望它仍然是原始数组时访问$data
。那是错的。
采用其他变量名称,非常常见的是$value
:
foreach ($data as $value)
希望这有助于即使它没有回答你的问题,但这可能是你问题的一部分,所以要小心;)
答案 2 :(得分:0)
$fetch=$q->result();
$array_result= json_decode(json_encode($fetch), true);
$g=array();
foreach($array_result as $p)
{
array_push($g,$p['email']);
}
$array=array_values(array_filter(array_unique($g)));
当我从大量类似的电子邮件中选择独特的电子邮件ID时,我正在使用这个来自Ajax响应...希望这可以帮助您查询是否在任何地方解决问题.. < / p>