php удаляет повторяющиеся значения в foreach - PullRequest
2 голосов
/ 12 июня 2011

У меня есть итератор 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;
} 
}

Ответы [ 3 ]

15 голосов
/ 12 июня 2011

С array_unique:

foreach (array_unique($data) as $d) {
 // Do stuff with $d ...
}

Хотя вы можете технически называть массив и его элементы одним и тем же именем, это неизбежно приведет к ошибкам программирования и путанице в дальнейшем.

3 голосов
/ 12 июня 2011

Посмотрите, что вы делаете:

foreach ($data as $data) 

Вы перезаписываете содержимое $data, затем вы получаете доступ к $data, ожидая, что он все еще будет исходным массивом.Это просто неправильно.

Возьмите дополнительное имя переменной, довольно распространенным является $value:

foreach ($data as $value)

Надеюсь, это поможет, даже если он не отвечает на ваш вопрос, но это может быть частьютвоя проблема, так что береги себя;)

0 голосов
/ 12 марта 2016
$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)));

Я использовал это, когда мне нужно было выбрать уникальные идентификаторы электронной почты из множества похожих писем, которые приходили через ответ Ajax ... надеюсь, это поможет вам задавать вопросы, если у вас возникнет проблема с пониманием проблем с ВИЧ ... 1002 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...