Пропустить ключ массива, если он уже существует

Я строю массив, как это:

$array = array(); // start with empty one

$array[] = 'foobar';
$array[] = 'hello';
$array[] = 'foobar';
$array[] = 'world';
$array[] = 'foobar';

Как вы видете, foobar повторяется три раза. Как сделать так, чтобы массив пропускал ключ, если он уже был добавлен ранее? Так что в этом случае второй и третий foobar не должен быть добавлен.

0

Решение

<?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 );
?>

Из руководства по PHP

3

Другие решения

Этот подход используется, если вы хотите «пропустить» элементы. демонстрация

$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);
3

По вопросам рекламы [email protected]