Избегайте дублирования элемента в foreach

#php

#php

Вопрос:

Я бы хотел, чтобы приведенный ниже код отображал только один раз каждый элемент $row[2] (без дубликатов) :

 foreach($rows as $row){
    echo " {$row[2]} ";
}
  

Как я могу этого добиться? Спасибо.

Мой массив очень большой, но вот пример из var_dump

   [0]=>
  array(10) {
    [0]=> string(2) "39"
    ["id"]=> string(2) "39"
    [1]=> string(3) "abc"
    ["A"]=> string(3) "abc"
    [2]=> string(2) "123"
    ["B"]=> string(2) "123"
    [3]=> string(1) "0"
    ["C"]=> string(1) "0"
    [4]=> string(1) "1"
    ["D"]=> string(1) "1"
  }
  

Меня интересует только [2]=> string(2) "123" .

Комментарии:

1. Правильно опишите, что вы хотите, и предоставьте var_dump $rows .

2. Пожалуйста $rows , сначала покажите массив. Попробуйте print_r($rows)

3. добавлен вывод var_dump

4. Вы можете получить 2 столбец из всех подмассивов с array_column() помощью after, после чего просто используйте array_unique() его, чтобы получить уникальные значения.

5. И что теперь отображает этот код?

Ответ №1:

Вот код, который вы можете использовать:

 $uniqueArr = array();
foreach ($rows as $row) { 
        if(!(in_array($row[2], $uniqueArr))) {
                echo $row[2];
                $uniqueArr[] = $row[2];
        }
}