Я строю массив, как это:
$array = array(); // start with empty one
$array[] = 'foobar';
$array[] = 'hello';
$array[] = 'foobar';
$array[] = 'world';
$array[] = 'foobar';
Как вы видете, foobar
повторяется три раза. Как сделать так, чтобы массив пропускал ключ, если он уже был добавлен ранее? Так что в этом случае второй и третий foobar
не должен быть добавлен.
<?php
$array = array(); // start with empty one
$array[] = 'foobar';
$array[] = 'hello';
$array[] = 'foobar';
$array[] = 'world';
$array[] = 'foobar';
$array = array_unique($array); // removes all the duplicates
var_dump( $array );
?>
Этот подход используется, если вы хотите «пропустить» элементы. демонстрация
$array = array("hello", "world", "foobar");
$value1 = "foobar";
$value2 = "test";
if(!in_array($value1, $array)) $array[] = $value1; // this will not be added because foobar already exists in the array
if(!in_array($value2, $array)) $array[] = $value2; // this will be added because it does not exist in the array
Если вам не обязательно пропускать элементы и просто нужно выводить данные, вы можете использовать array_unique следующим образом: демонстрация
$array = array("hello", "world", "foobar", "foobar");
$array = array_unique($array);