Удаление последней ячейки массива php примеры
Удаление последнего элемента массива php -> array_pop
Для иллюстрации удаления последнего элемента массива нам понадобится массив:
Чтобы мы его могли увидеть выведем с помощью :print_r
Вывод массива, обращаю ваше внимание ан последний элемент/ячейку массива ->
=> седьмой — это и есть последняя ячейка, которую будем удалять!
Теперь нам осталось применить функцию array_pop к нашему массиву, передавать в переменную не нужно, записываем прямо так:
Массив без последнего элемента
После выполнения функции array_pop , применяя ранее приведенный print_r. Как видим, что наша последняя ячейка массива прекрасно была удалена из массива!
Как удалить последнюю ячейку с помощью -> unset
Нам потребуется опять массив, который использовали выше. Поскольку там уже була удалена последняя ячейка массива, то перед названием переменной вставляем еще переменную с равно, чтобы уже работать с новым( старым ) массивом
$NEW_ARR = $array = array( . );
Нам нужно получить номер последней ячейки массива — он высчитывается так(вопрос на засыпку, зачем написали минус 1):
Нам осталось применить функцию unset, к нашей последней ячейке массива:
Как видим из вывода нашего массива — последняя ячейка массива прекрасно удалилась с помощью unset
Как удалить последнюю ячейку в -> цикле
Вариант №1 удаление последней ячейки массива в цикле
Это очень простой способ удаления последнего элемента массива в цикле! Надо просто сделать вывод цикла минус один, например так:
Как удалить повторяющиеся элементы массива PHP?
Это ещё одна частая задача при работе с массивами. В PHP для её решения есть специальная функция — array_unique(). Посмотрим как она работает.
<?php
$stack = array(‘a’, ‘b’, ‘b’, ‘c’, ‘c’, 0, ‘0’);
$stack = array_unique($stack);
print_r($stack);
//увидим на экране : Array ( => a => b => c => 0 )
?>
1 |
<?php $stack=array(‘a’,’b’,’b’,’c’,’c’,,’0′); $stack=array_unique($stack); print_r($stack); //увидим на экране : Array ( => a => b => c => 0 ) |
Видим, что функция удалила из массива повторяющиеся элементы. На самом деле у функции есть ещё один параметр, который указывает как сравнивать элементы.
Значения могут быть следующими:
- SORT_REGULAR — сравнивать без преобразования типа элементов,
- SORT_NUMERIC — сравнивать как числа (т.е. пытаясь преобразовать в число),
- SORT_STRING — сравнивать как строки
- SORT_LOCALE_STRING — сравнивать как строки, учитывая выбранный набор символов (т.н. locale).
По умолчанию используется — SORT_STRING. Выбор типа сравнения имеет огромное значение. Поменяем в предыдущем примере тип на SORT_NUMERIC.
<?php
$stack = array(‘a’, ‘b’, ‘b’, ‘c’, ‘c’, 0, ‘0’);
$stack = array_unique($stack, SORT_NUMERIC);
print_r($stack);
//увидим на экране : Array ( => a )
?>
1 |
<?php $stack=array(‘a’,’b’,’b’,’c’,’c’,,’0′); $stack=array_unique($stack,SORT_NUMERIC); print_r($stack); //увидим на экране : Array ( => a ) |
PHP UnSet array
Применение этих функций удалит
все ссылки на эти элементы из PHP кода
. Для сохранения в массиве ключа с пустым значением необходимо присвоить элементу пустую строку:
$array = $array = «»;
Есть логическое отличие между использованием функции unset() и присваиванием элементу пустой строки (»). В первом случае говорится: «Этого элемента больше не существует», а во втором – «Этот элемент еще существует, но его значение равно пустой строке».
После применения функции unset() к какому-либо элементу массива, PHP корректирует его так, чтобы продолжал правильно работать. Он не сжимает массив для заполнения пустого пространства, поэтому, можно утверждать, что все массивы являются ассоциативными, даже если кажутся числовыми. Например:
// создаем «нумерованный» массив
$animals = array(«ant», «bee», «cat», «dog», «elk», «fox»);
print $animals; // печатает «bee»
print $animals; // печатает «cat»
count($animals); // возвращает 6
// unset()
unset($animals); // удаляет элемент $animals = «bee»
print $animals; // печатает «» и выдает ошибку E_NOTICE
print $animals; // все еще печатает «cat»
count($animals); // возвращает 5, даже если $array равно «fox»
// add new element
$animals = «gnu»; // добавляем новый элемент (не в Unix)
print $animals; // печатает «», все еще пустая
print $animals; // печатает «gnu», где «gnu» заканчивается
count($animals); // возвращает 6
// присваиваем «»
$animals = «»; // нулевое выходное значение
print $animals; // печатает «»
count($animals); // возвращаем 6, счетчик не уменьшается
Используем функцию array_values(), для того, чтобы сжать массив до плотно заполненного числового массива:
$animals = array_values($animals);
Функция array_splice() автоматически реиндексирует массив, чтобы не оставлять «дыр»:
// создаем «числовой» массив
$animals = array(«ant», «bee», «cat», «dog», «elk», «fox»);
array_splice($animals, 2, 2);
print_r($animals);
Array
( => ant
=> bee
=> elk
=> fox)
Это полезно, если работать с массивом как с очередью, разрешая произвольный доступ. Для удаления первого или последнего элемента массива применяются функции array_shift() и array_pop()
Reg.ru: домены и хостинг
Крупнейший регистратор и хостинг-провайдер в России.
Более 2 миллионов доменных имен на обслуживании.
Продвижение, почта для домена, решения для бизнеса.
Более 700 тыс. клиентов по всему миру уже сделали свой выбор.
Фреймворк Bootstrap:
быстрая адаптивная вёрстка
Пошаговый видеокурс по основам адаптивной верстки в фреймворке Bootstrap.
Научитесь верстать просто, быстро и качественно, используя мощный и практичный инструмент.
Верстайте на заказ и получайте деньги.
*Наведите курсор мыши для приостановки прокрутки.
Назад
Вперед
D. Добавление ключей
Имя входного файла: стандартный ввод
Имя выходного файла: стандартный вывод
Ограничение по времени: 2 секунды
Ограничение по памяти: 256 мегабайт
Вы работаете в компании Макрохард и вас попросили реализовать структуру данных, которая
будет хранить множество целых ключей.
Будем считать, что ключи хранятся в бесконечном массиве A, проиндексированном с 1 , исходно
все его ячейки пусты. Структура данных должна поддерживать следующую операцию:
Insert(L,K), где L — позиция в массиве, а K — некоторое положительное целое число.
Операция должна выполняться следующим образом:
-
Если ячейка A пуста, присвоить A <- K.
-
Если A непуста, выполнить Insert(L+ 1,A) и затем присвоить A <- K.
По заданным N целым числам L1, L2,…,LN выведите массив после выполнения последователь
ности операций:
Insert(L1 , 1 )
Insert(L2 , 2 )
…
Insert(LN,N)
Формат входных данных
Первая строка входного файла содержит числа N — количество операций Insert, которое
следует выполнить и M — максимальную позицию, которая используется в операциях Insert
( 1 ⩽ N ⩽ 131 072, 1 ⩽ M ⩽ 131 072).
Следующая строка содержит N целых чисел Li, которые описывают операции Insert, которые
следует выполнить ( 1 ⩽ Li ⩽ M).
Формат выходных данных
Выведите содержимое массива после выполнения всех сделанных операций Insert. На первой
строке выведите W — номер максимальной непустой ячейки в массиве. Затем выведите W целых
чисел — A, A,…, A. Выводите нули для пустых ячеек.
стандартный ввод
5 4 3 3 4 1 3
стандартный вывод
6 4 5 2 3 1
E. И снова сумма
Имя входного файла: стандартный ввод
Имя выходного файла: стандартный вывод
Ограничение по времени: 3 секунды
Ограничение по памяти: 256 мегабайт
Реализуйте структуру данных, которая поддерживает множество S целых чисел, с котором раз-
решается производить следующие операции:
-
add(i)— добавить в множество S число i (если он там уже есть, то множество не меняется);
-
sum(l, r) — вывести сумму всех элементов x из S, которые удовлетворяют неравенству
l ⩽ x ⩽ r.
Формат входных данных
Исходно множество S пусто. Первая строка входного файла содержит n — количество операций
( 1 ⩽ n ⩽ 300 000).Следующие n строк содержат операции. Каждая операция имеет вид либо «+i»,
либо «? l r». Операция «? l r» задает запрос sum(l, r).
Если операция « +i » идет во входном файле в начале или после другой операции «+», то она
задает операцию add(i). Если же она идет после запроса «?», и результат этого запроса былy, то
выполняется операция add((i + y) mod 10^9 ).
Во всех запросах и операциях добавления параметры лежат в интервале от 0 до 10^9.
Формат выходных данных
Для каждого запроса выведите одно число — ответ на запрос.
стандартный ввод
6 + 1 + 3 + 3 ? 2 4 + 1 ? 2 4
стандартный вывод
3 7
F. K-й максимум
Имя входного файла: стандартный ввод
Имя выходного файла: стандартный вывод
Ограничение по времени: 2 секунды
Ограничение по памяти: 512 мегабайт
Напишите программу, реализующую структуру данных, позволяющую добавлять и удалять эле-
менты, а также находить k-й максимум.
Формат входных данных
Первая строка входного файла содержит натуральное число n — количество команд
(n ⩽ 100 000). Последующиеnстрок содержат по одной команде каждая. Команда записывается в
виде двух чиселc i и ki — тип и аргумент команды соответственно (|ki| ⩽ 10^9 ). Поддерживаемые
команды:
-
+1 (или просто 1 ): Добавить элемент с ключом ki.
-
0 : Найти и вывести ki-й максимум.
-
-1 : Удалить элемент с ключом ki.
Гарантируется, что в процессе работы в структуре не требуется хранить элементы с равными
ключами или удалять несуществующие элементы. Также гарантируется, что при запросе ki-го мак-
симума, он существует.
Формат выходных данных
Для каждой команды нулевого типа в выходной файл должна быть выведена строка, содержа-
щая единственное число — ki-й максимум.
стандартный ввод
стандартный вывод
7 5 3 10 7 3
Решения Только для Массивов Размера 1 Могут Быть Преобразованы В Скаляры Python Ошибка
Существует несколько способов решения проблемы TypeError в Python. Самое главное, что модули Numpy предоставляют некоторые встроенные функции, которые вы можете использовать для создания подходящего типа данных перед использованием его в методе. Ниже приведены решения этой ошибки –
1. Использование Функции Векторизации Numpy
С точки зрения непрофессионала, Векторизация означает применение алгоритма к набору значений, а не к одному значению. Поскольку TypeError возникает из-за его использования на наборах значений, вы можете использовать numpy.vectorize() между алгоритмом и методами. Этот метод действует как функция отображения python над массивом numpy.
Код –
import numpy as np .vectorize(np.float).array()(x) print(x)
Выход –
Объяснение –
Во-первых, мы начали с создания вектора, который принимает np.float в качестве параметра. Чтобы применить метод ко всем элементам массива numpy, мы будем использовать этот вектор. Затем мы создали массив numpy, а затем использовали наш вектор (), чтобы применить np.float ко всем значениям. Этот метод позволяет избежать всех видов TypeError, а также преобразует все значения в float.
2. Использование функции Map()
Конечно, карта-это базовая встроенная функция в python, которая применяет функцию ко всем элементам массива. функция map() принимает два основных параметра. Первая – это функция, которую вам нужно применить к наборам значений. Второй – это массив, который вы хотите изменить. Давайте перейдем к примеру –
Код –
import numpy as np .array().array(list(map(np.float, x))) print(x)
Выход –
Объяснение –
Во-первых, мы создали простой целочисленный массив и использовали map(np.float, x) для преобразования всех элементов из массива numpy в float. Поскольку функция map возвращает объект map, нам нужно преобразовать его обратно в список и массив numpy, чтобы восстановить его тип данных. Используя этот метод, вы можете избежать получения TypeError.
3. Использование Петель
Циклы-это наиболее грубые методы применения функции к набору значений. Но он обеспечивает нам контроль над всеми частями элементов и может быть использован для настройки элементов, если нам это нужно.
Код –
import numpy as np .array().array(*3) for i in range(3): .float(x) print(y)
Выход –
Объяснение –
В приведенном выше примере мы использовали индексацию для извлечения начального целого числа из массива numpy. Затем применил метод np.float() для преобразования его из float в int. Кроме того, мы создали фиктивный массив numpy y, который хранит значения float после изменения.
4. Использование apply_along_axis
Apply_along_axis-это метод Numpy, который позволяет пользователям применять функцию над массивом numpy вдоль определенной оси. Как numpy – это href=”https://en.wikipedia.org/wiki/LOOP_(programming_language)”>looped в соответствии с номером оси, вы можете использовать его для применения функции над наборами значений. href=”https://en.wikipedia.org/wiki/LOOP_(programming_language)”>looped в соответствии с номером оси, вы можете использовать его для применения функции над наборами значений.
Код –
import numpy as np .array() y: .apply_along_axis(app, 0, x) print(x)
Выход –
Объяснение –
В этом примере мы будем использовать лямбда-функцию для создания векторизованной функции функции. Затем мы будем использовать np.apply_along_axis для применения лямбда-функции над конкретным массивом numpy. Вы также можете указать ось, вдоль которой вам нужно применить функцию.
Удалить ключи массива, скопировав массив
Существует также еще одна практика, которая еще не упомянута. Иногда самый простой способ избавиться от определенных ключей массива — просто скопировать $ array1 в $ array2.
$array1 = range(1,10);
foreach ($array1 as $v) {
// Remove all even integers from the array
if($v % 2) {
$array2 = $v;
}
}
print_r($array2);
// Output: ;
Очевидно, такая же практика применима к текстовым строкам:
$array1 = ;
foreach ($array1 as $v) {
// Remove all strings beginning with underscore
if(strpos($v,»_»)===false) {
$array2 = $v;
}
}
print_r($array2);
// Output:
Решения:
- Чтобы удалить один элемент, используйте unset() :
- Чтобы удалить несколько несмежных элементов, также используйте unset() :
- Чтобы удалить несколько смежных элементов, используйте array_splice() :
Дальнейшее объяснение:
$array = $array = «»;
Помимо синтаксиса, есть логическая разница между использованием unset() и назначением элемента. Первый говорит, что This doesn»t exist anymore, а второй говорит, что This still exists, but its value is the empty string.
Если вы имеете дело с числами, лучше выбрать 0. Таким образом, если компания остановит производство звездочки модели XL1000, она обновит свой инвентарь:
Unset($products);
Однако, если в нем временно закончились звездочки XL1000, но в конце этой недели планировалось получить новую партию от завода, это лучше:
$products = 0;
$animals = array_values($animals);
Удалить элемент массива на основе ключа:
Используйте функцию unset , как показано ниже:
$a = array(«salam»,
«10»,
1);
unset($a);
print_r($a);
/*
Output:
Array
( => salam
=> 1)
*/
Удалить элемент массива на основе значения:
Используйте array_search функцию для получения ключа элемента и используйте вышеприведенный способ удаления элемента массива, как показано ниже:
$a = array(«salam»,
«10»,
1);
$key = array_search(10, $a);
if($key !== false) {
unset($a);
}
print_r($a);
/*
Output:
Array
( => salam
=> 1)
*/
<?php $array = array(«your array»);
$array = array_diff($array, );
?>
Создайте свой массив в переменной $array а затем, где я поместил «элемент, который вы хотите удалить», вы поместите что-то вроде: «a». А если вы хотите удалить несколько, то: «a», «b».
Данную задачу можно решить несколькими способами.
Способ 1. Скопировать в другой массив только нечетные элементы.
const
N =
20
;
var
a,
b:
array
of
integer
;
i,
m:
byte
;
begin
randomize;
for
i:
=
1
to
N do
begin
a
:
=
random(40
)
+
10
;
write
(a
:
3
)
;
end
;
writeln
;
m :
=
0
;
for
i:
=
1
to
N do
if
a
mod
2
0
then
begin
m :
=
m +
1
;
b
:
=
a
;
end
;
for
i:
=
1
to
m do
begin
write
(b
:
3
)
;
end
;
writeln
;
end
.
Это самый простой способ удаления элементов массива (в данном случае четных чисел), так как не требуется сжимать исходный массив. В представленном выше решении задачи переменная m хранит количество найденных нечетных элементов и в то же время, при заполнении второго массива является меняющимся индексом элементов.
Способ 2. Удалять четные элементы в текущем массиве, перезаписывая их расположенными правее нечетными.
const
N =
10
;
var
a:
array
of
integer
;
i,
k,
m:
byte
;
begin
randomize;
for
i:
=
1
to
N do
begin
a
:
=
random(40
)
+
10
;
write
(a
:
3
)
end
;
writeln
;
i :
=
1
;
m :
=
N;
while
i
Этот способ решения задачи сложнее. Здесь если встречается четный элемент, то весь остаток массива сдвигается на одну ячейку вперед. При этом найденный четный элемент затирается. Переменная m уменьшается, т. к. количество элементов массива становится меньше.
Этот способ следует считать наиболее рациональным (однако в школьном курсе открытые массивы могут не изучаться). В предыдущих вариантах по-сути массивы не уменьшались, на экран выводилась лишь часть массива. Можно было бы вообще просто перебрать исходный массив, ничего с ним не делать и вывести на экран только нечетные элементы.
Открытый массив позволяет изменять свою длину. В решении задачи ниже после того как нечетные элементы сдвинуты и «затерли» нечетные, изменяется длина массива (процедурой setlength). Она устанавливает новую длину массива. Особенностью открытых массивов в Pascal является то, что их индексация начинается с нуля.
const
N =
10
;
var
a:
array
of
integer
;
i,
j,
m:
byte
;
begin
randomize;
SetLength(a,
N)
;
for
i :
=
0
to
N-
1
do
begin
a
:
=
random(40
)
+
10
;
write
(a
:
3
)
;
end
;
writeln
;
i :
=
0
;
// индекс первого элемента
m :
=
n-
1
;
// индекс последнего
while
i // последний элемент имеет индекс m, но элементов m+1
for
i:
=
0
to
m do
write
(a
:
3
)
;
writeln
;
end
.
Пример выполнения кода программы.
Удаление пересекающихся элементов массива
Одним из удобных средств PHP является возможность получить массив из элементов, не пересекающихся с элементами других массивов. Для этого применяется функция array_diff
(). В качестве параметров, она принимает массивы, возвращая новый массив. Например, имеется исходный массив $myArr из которого нам нужны только элементы не входящие в массив $myArr2:
$myArr = array
(1,2,3,4,5);
$myArr2 = array
(3,4);
Применив функцию array_diff()
, получим новый массив, содержащий только необходимые элементы:
$resArr = array_diff($myArr, myArr2);
В результате $resArr будет содержать:
Array
=> 1
=> 2
=> 5
)
*
Здесь стоит обратить внимание на то, что ключи при создании нового массива сохраняются. Кроме того, стоит знать, что выборка идет только из первого массива
Так, если в $myArr2 другие уникальные элементы, например «6» или «7», то на результат это никак не повлияет — они в новый массив добавлены не будут.
Данную задачу можно решить несколькими способами.
Способ 1. Скопировать в другой массив только нечетные элементы.
const
N =
20
;
var
a,
b:
array
of
integer
;
i,
m:
byte
;
begin
randomize;
for
i:
=
1
to
N do
begin
a
:
=
random(40
)
+
10
;
write
(a
:
3
)
;
end
;
writeln
;
m :
=
0
;
for
i:
=
1
to
N do
if
a
mod
2
0
then
begin
m :
=
m +
1
;
b
:
=
a
;
end
;
for
i:
=
1
to
m do
begin
write
(b
:
3
)
;
end
;
writeln
;
end
.
Это самый простой способ удаления элементов массива (в данном случае четных чисел), так как не требуется сжимать исходный массив. В представленном выше решении задачи переменная m хранит количество найденных нечетных элементов и в то же время, при заполнении второго массива является меняющимся индексом элементов.
Способ 2. Удалять четные элементы в текущем массиве, перезаписывая их расположенными правее нечетными.
const
N =
10
;
var
a:
array
of
integer
;
i,
k,
m:
byte
;
begin
randomize;
for
i:
=
1
to
N do
begin
a
:
=
random(40
)
+
10
;
write
(a
:
3
)
end
;
writeln
;
i :
=
1
;
m :
=
N;
while
i
Этот способ решения задачи сложнее. Здесь если встречается четный элемент, то весь остаток массива сдвигается на одну ячейку вперед. При этом найденный четный элемент затирается. Переменная m уменьшается, т. к. количество элементов массива становится меньше.
Этот способ следует считать наиболее рациональным (однако в школьном курсе открытые массивы могут не изучаться). В предыдущих вариантах по-сути массивы не уменьшались, на экран выводилась лишь часть массива. Можно было бы вообще просто перебрать исходный массив, ничего с ним не делать и вывести на экран только нечетные элементы.
Открытый массив позволяет изменять свою длину. В решении задачи ниже после того как нечетные элементы сдвинуты и «затерли» нечетные, изменяется длина массива (процедурой setlength). Она устанавливает новую длину массива. Особенностью открытых массивов в Pascal является то, что их индексация начинается с нуля.
const
N =
10
;
var
a:
array
of
integer
;
i,
j,
m:
byte
;
begin
randomize;
SetLength(a,
N)
;
for
i :
=
0
to
N-
1
do
begin
a
:
=
random(40
)
+
10
;
write
(a
:
3
)
;
end
;
writeln
;
i :
=
0
;
// индекс первого элемента
m :
=
n-
1
;
// индекс последнего
while
i // последний элемент имеет индекс m, но элементов m+1
for
i:
=
0
to
m do
write
(a
:
3
)
;
writeln
;
end
.
Пример выполнения кода программы.
Числовые массивы
Для числовых массивов используйте array_splice
:
$arr = array(1, 2, 3);
array_splice($arr, 1, 1);
// RESULT: array(0 => 1, 1 => 3)
Примечание
Если вам нужно удалить несколько значений в массиве, а записи в этом массиве — объекты или структурированные данные, — ваш лучший выбор. Те записи, которые возвращают true из функции обратного вызова, будут сохранены.
$array = ,
,
];
$results = array_filter($array, function($value) {
return $value > 2;
}); //=> ]
Если вам нужно удалить несколько элементов из ассоциативного массива, вы можете использовать array_diff_key() (здесь используется array_flip()):
$my_array = array(«key1» => «value 1»,
«key2» => «value 2»,
«key3» => «value 3»,
«key4» => «value 4»,
«key5» => «value 5»,);
$to_remove = array(«key2», «key4»);
$result = array_diff_key($my_array, array_flip($to_remove));
print_r($result);
Array ( => value 1 => value 3 => value 5)
Предположим, у вас есть следующий массив:
Array
( => 193
=> 5)
Чтобы удалить storage , выполните:
Unset($attributes);
$attributes = array_filter($attributes);
И вы получите:
Array
( => 193)
Я просто хотел бы сказать, что у меня был определенный объект, который имел переменные атрибуты (это было в основном отображение таблицы, и я менял столбцы в таблице, поэтому атрибуты в объекте, отражающие таблицу, также могли бы меняться):
Class obj {
protected $fields = array(«field1″,»field2»);
protected $field1 = array();
protected $field2 = array();
protected loadfields(){}
// This will load the $field1 and $field2 with rows of data for the column they describe
protected function clearFields($num){
foreach($fields as $field) {
unset($this->$field);
// This did not work the line below worked
unset($this->{$field}); // You have to resolve $field first using {}
}
}
}
Вся цель $fields была проста, поэтому мне не нужно нигде искать в коде, когда они меняются, я просто смотрю на начало класса и изменяю список атрибутов и содержимое массива $ fields
для отражения новые атрибуты.
Следуйте функциям по умолчанию
$Array = array(«test1″,»test2″,»test3″,»test3»);
unset($Array);
$Array = array(«test1″,»test2″,»test3″,»test3»);
array_pop($Array);
$Array = array(«test1″,»test2″,»test3″,»test3»);
array_splice($Array,1,2);
$Array = array(«test1″,»test2″,»test3″,»test3»);
array_shift($Array);
Хотя unset() упоминалась здесь несколько раз, все же следует упомянуть, что unset() принимает несколько переменных, что упрощает удаление нескольких несмежных элементов из массива за одну операцию:
// Delete multiple, noncontiguous elements from an array
$array = ;
unset($array, $array);
print_r($array);
// Output:
Удаление элемента в массиве по его ключу
Если известен ключ элемента, то задача очень проста. Функция unset()
позволяет удалить элемент массива или любую переменную (так же будет очищена задействованная под переменную память компьютера).
Например, имеем массив:
$myArr = array
(1,2,3,4,5);
Для удаления элемента со значением «3» используем код:
unset($myArr);
Обратите внимание, что указывается не значение (3), а ключ элемента (2), начинающийся, в данном случае с 0. Так, если нужно удалить первый элемент массива, то указываем нулевой элемент:. unset($myArr);
unset($myArr);
Так же стоит учитывать, что после наших двух удалений, массив теперь содержит три элемента:
Array
=> 2
=> 4
=> 5
)
Все ключи оставшихся элементов сохраняются. Соответственно, если теперь нужно будет удалить первый элемент, то указывать надо будет в качестве ключа единицу. Поэтому, а так же, потому что мы не всегда знаем номер элемента в массиве, а лишь его значения такой вариант может не подходить.