Есть массив $data = array()
. В него записываются данные array_push($data, data)
.
Т.к. data
может повторяться, создаётся новый массив с уникальными data
.
$uniq_data = array_unique($data);
После чего я хочу вывести этот массив. Делаю я это так :
for($i=0; $i<count($uniq_data); $i++){
}
Выводит только первые 2 элемента массива. После вывода массива через print_r($uniq_data);
вижу что ключи элементов не идут по порядку (0,1,2,3...), видимо ключи копируются из прошлого массива(0,4,28,392...).
Я не понимаю как это работает. По идее оно должно вывести все элементы, но выводит только те, где ключ элемента массива меньше числа count($uniq_data)
. Почему так? И как мне вывести все элементы?
Самое простое после array_unique
для сортировки ключей с нуля:
$array = array_values($array);
array_values()
возвращает массив со всеми элементами массива array
. Она также заново индексирует возвращаемый массив числовыми индексами. https://www.php.net/manual/ru/function.array-values.php
Функция array_unique()
удаляет повторяющиеся элементы, но не сбрасывает их индексы. Соответственно, если у вас 4 элемента в массиве, но их индексы равны, например: 0, 4, 28, 392, то в цикле for
выведется только первый элемент.
Чтобы вывести все элементы воспользуйтесь циклом перебора массива foreach
:
foreach ($uniq_data as $key => $data) {
//..
}
Подробная информация в документации
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Подскажите , при клике по кнопке которая находится в компоненте должен меняться state в appvue
При нажатии на кнопку cenzor нужно заменить каждую букву слова, которое находится в массиве на "*"Не понимаю как нужно поставить условие
Есть той сервис как Вебвизор у ЯндексМетрики, дан код как на картинке, и его нужно вставить в WebView в программеВидел однажды такую реализацию...