- Как удалить элемент массива в PHP?
- 1. Удаляем элемент массива в PHP
- 2. Как удалить 1-й элемент массива?
- 3. Как удалить последний элемент массива?
- 4. Как удалить пустые элементы из массива?
- 5. Удаляем повторяющиеся элементы массива в PHP
- How To Remove Specific Element From Array in PHP
- How to Delete Specific Element From Array By Key, Value and Index in PHP
- Removing an array element by key
- Removing an array element by value
- Removing an array element by index
- Unset Multiple Keys from Array
- Conclusion
- Recommended PHP Tutorials
- Author Admin
- Как удалить элемент массива по ключу в PHP
Как удалить элемент массива в PHP?
Одним из мощнейших инструментов PHP-разработчика являются массивы. Если вы работали с массивами в других языках программирования (Delphi, Fortrain, C++), то помните, что везде массив надо объявлять, указывая размерность и тип элементов. В PHP всё обстоит иначе.
Дело в том, что в PHP массив не является линейным объектом. Это, по сути, хеш-массив, представляющий собой набор пар — ключей с их значениями.
Теперь давайте посмотрим, как удалять элементы из хеш-массива в PHP. В вышеупомянутых языках программирования для таких действий придётся создавать специальный объект, односвязный либо 2-связный список, бережно выделять и освобождать память, наблюдать за восстановлением связей в списке. Что касается PHP, то тут весь необходимый «менеджмент» спрятан, но всегда готов к применению.
1. Удаляем элемент массива в PHP
Чтобы удалить элемент в PHP, достаточно всего лишь знать его ключ — в таком случае удаление будет сведено к вызову функции unset() :
php $a = array('a','b','c'); unset($a[1]); //удаляем элемент с ключом «1» print_r($a); //на экране отобразится: Array ( [0] => a [2] => c ) ?>
2. Как удалить 1-й элемент массива?
Если не знаем ключ, но знаем, что удалять надо 1-й элемент массива, подойдёт функция array_shift() . Она извлечёт значение 1-го элемента, удалит его из массива и выполнит перенумерацию числовых ключей, начав с нуля.
php $stack = array(3 => 'a', 5 => 'b', 'third element' => 'c'); $elm = array_shift($stack); print_r($stack); //на экране отобразится: Array ( [0] => b [third element] => c ) ?>
В нашем случае 1-й элемент удаляется, а элемент 5 => ‘b’, попадает под перенумерацию. Что касается элементов со строковыми ключами, то их перенумерация не затронет.
3. Как удалить последний элемент массива?
Схожим образом выполняют удаление последнего элемента массива. Для этого в PHP есть функция array_pop() .
php $stack = array(3 => 'a', 5 => 'b', 'third element' => 'c'); $elm = array_pop($stack); print_r($stack); //на экране отобразится: Array ( [3] => a [5] => b ) ?>
После удаления последнего элемента массива в PHP перенумерация оставшихся элементов не выполняется.
4. Как удалить пустые элементы из массива?
Сначала вспомним, что называют пустым элементом. Лучше всего определить «пустое значение» помогает результат работы функции empty() . Функция возвратит true для пустого элемента, причем не только скалярного. Убедимся в этом на примере ниже:
php $stack = array(3 => 'a', 5 => 'b', '3rd' => 'c', array(), null, false, 0, '', '0', '00'); foreach ($stack as $k => $v) if (empty($v)) unset($stack[$k]); print_r($stack); //на экране отобразится : Array ( [3] => a [5] => b [3rd] => c [12] => 00 ) ?>
Итак, мы в цикле проверим каждый элемент массива, используя функцию empty() и удалим пустые элементы. Здесь важно понять, что строковый скаляр ‘0’ — тоже пустой элемент. А вот ’00’ пустым не является.
Если считаете, что поэлементная проверка массива — неоптимальный вариант, воспользуйтесь функцией сравнения массивов в PHP — array_diff() , перечислив с её помощью все элементы, которые считаем «нулевыми»:
php $stack = array(3 => 'a', 5 => 'b', '3rd' => 'c', array(), null, false, 0, '', '0', '00', ' '); $stack = array_diff($stack, array(array(), null, false, 0, '', '0', '00', ' ')); print_r($stack); //на экране отобразится: Array ( [3] => a [5] => b [3rd] => c ) ?>
Очевидно, что данный способ более гибок.
5. Удаляем повторяющиеся элементы массива в PHP
Порой возникает необходимость удалить повторяющиеся элементы массива в PHP. Для решения этой задачи существует специальная функция под названием array_unique() :
php $stack = array('a', 'b', 'b', 'c', 'c', 0, '0'); $stack = array_unique($stack); print_r($stack); //на экране отобразится: Array ( [0] => a [1] => b [3] => c [5] => 0 ) ?>
Из кода видно, что функция удалила из PHP-массива повторяющиеся элементы. При этом функция имеет ещё один параметр, указывающий, как сравнивать элементы.
Возможные типы сравнения: • SORT_REGULAR — сравнение без преобразования типа элементов; • SORT_STRING — сравнение как строки; • SORT_NUMERIC — сравнение как чисел (пытаемся преобразовать в число); • SORT_LOCALE_STRING — сравнение как строки, но с учётом выбранного набора символов.
По умолчанию применяется SORT_STRING. Выбирая типы сравнения, помните, что это важно. Давайте изменим тип в прошлом примере на SORT_NUMERIC:
php $stack = array('a', 'b', 'b', 'c', 'c', 0, '0'); $stack = array_unique($stack, SORT_NUMERIC); print_r($stack); //на экране отобразится: Array ( [0] => a ) ?>
Во время сравнения все элементы массива были преобразованы к численному типу скаляра. В нашем случае это неизменно давало значение ноль, в результате чего у нас остался лишь первый элемент.
Хотите знать о PHP больше? Записывайтесь на курс «Backend-разработчик на PHP»!
How To Remove Specific Element From Array in PHP
Remove specific elements from array in PHP. In this tutorial, you will learn how to remove or delete specific elements from php array by key, value, and index in PHP.
How to Delete Specific Element From Array By Key, Value and Index in PHP
- Removing an array element by key
- Removing an array element by value
- Removing an array element by index
- Unset Multiple Keys from Array
Removing an array element by key
To remove an array element by key, you need to know the key of the element you want to remove.
"red", "banana" => "yellow", "grape" => "purple"); unset($fruits["banana"]); print_r($fruits); ?>
In above-given code, you have an array of fruits with their colors. And you want to remove the element with the key “banana” from this array. Then you need to use the unset() function and pass in the key of the element to remove.
Removing an array element by value
To remove an array element by value, you need to search for the value and get its key. Then you can remove it from array by it’s value.
In the above-given code, you have same array, which you have used in first example. Then, you can use the array_search() function to search for the value and get its key. If the value is found, use the unset() function to remove the element with that key.
Removing an array element by index
To remove an array element by index, you need to know the index of the element, which you want to remove.
Unset Multiple Keys from Array
Sometimes, you may need to remove multiple elements from an array. So, you can use a loop to iterate through the array and call unset() on each key you want to remove.
$fruits = array( "apple" => 0.50, "banana" => 0.25, "cherry" => 1.00, "grape" => 0.75, "orange" => 0.30 ); $keys_to_remove = array("banana", "orange"); foreach ($keys_to_remove as $key) < if (array_key_exists($key, $fruits)) < unset($fruits[$key]); >>
- First, an associative array $fruits is created, which contains a list of fruits and their respective prices. Each fruit is a key-value pair, where the fruit name is the key, and the price is the value.
- Next, an array $keys_to_remove is defined, which contains the keys (i.e., fruit names) of the elements that you want to remove from the $fruits array.
- Then, a foreach loop is used to iterate through the $keys_to_remove array. On each iteration, the loop assigns the current element to the variable $key .
- Inside the loop, array_key_exists() the function is used to check if the current key exists in the $fruits array. This is important because if you try to unset a key that does not exist in the array, PHP will not raise an error, but will simply do nothing. Therefore, we need to ensure that the key exists before calling unset() .
- Finally, if the key exists in the $fruits array, the unset() the function is called to remove the element from the array. This effectively removes the element with the corresponding key from the $fruits array.
After running this code, the $fruits the array will look like this:
Array ( [apple] => 0.5 [cherry] => 1 [grape] => 0.75 )
Conclusion
The unset() a function is used to remove array elements by key, value, and index. By following the examples in this tutorial, you can learn how to manipulate arrays in your PHP applications effectively using unset() function. Remember that unset() removes the element from the array completely, and the remaining elements will be reindexed automatically.
Recommended PHP Tutorials
- To Remove Elements or Values from Array PHP
- How to Convert String to Array in PHP
- Array Push and POP in PHP | PHP Tutorial
- PHP Search Multidimensional Array Php unset array element by key
- PHP Array to String Conversion – PHP Implode
- Array Functions In PHP
- Functions: Remove First Character From String PHP
- Remove Specific/Special Characters From String In PHP
- How to Replace First and Last Character From String PHP
- remove duplicates from multidimensional array PHP
- PHP Remove Duplicate Elements or Values from Array PHP
- PHP Convert Array to Comma Separated String
- Compare Arrays Keys and Values PHP
- PHP Object to Array Convert using JSON Decode
- Convert CSV to JSONPHP
- How to Check If the Variable is Empty in PHP
Author Admin
My name is Devendra Dode. I am a full-stack developer, entrepreneur, and owner of Tutsmake.com. I like writing tutorials and tips that can help other developers. I share tutorials of PHP, Python, Javascript, JQuery, Laravel, Livewire, Codeigniter, Node JS, Express JS, Vue JS, Angular JS, React Js, MySQL, MongoDB, REST APIs, Windows, Xampp, Linux, Ubuntu, Amazon AWS, Composer, SEO, WordPress, SSL and Bootstrap from a starting stage. As well as demo example.
Как удалить элемент массива по ключу в PHP
В данной короткой статье, рассмотрим пару примеров удаление элементов массива по его ключу.
$array = [ 1 => 'One', 'Two' => 3, 'Three' => 'Three', 4 => NULL, ]; echo "";print_r($array); echo ""; if(isset($array['Two'])) < unset($array['Two']); >echo "
";print_r($array); echo ""; if(isset($array[4])) < unset($array[4]); >echo "
";print_r($array); echo ""; if(array_key_exists(4, $array)) < unset($array[4]); >echo "
";print_r($array); echo "";
$array = [ 1 => 'One', 'Two' => 3, 'Three' => 'Three', 4 => NULL, ]; echo "";print_r($array); echo "";
инициализация массива с четырьмя значениями (обратите внимание на последний).
Удаление элемента массива по ключу, ничем не отличается от удаления обычной переменной. Для этого, нужно использовать функцию PHP «unset()», с аргументом удаляемой переменной. Но прежде чем что-то удалять, нужно проверить, была ли инициализирована переменная ранее. Иначе может возникнуть ошибку.
Для проверки можно использовать следующее условие:
if(isset($array['Two'])) < unset($array['Two']); >echo "";print_r($array); echo "";
и сразу же проверить результат. Как видите, массив был уменьшен на одну запись.
Продолжим наше исследование, и постараемся удалить элемент массива с ключом «4»:
if(isset($array[4])) < unset($array[4]); >echo "";print_r($array); echo "";
Проверив результат, мы обнаружим что значение не было удалено. Все дело в условном операторе и функции «isset()». Дело в том, что она не срабатывает для переменной имеющей значение NULL. Поэтому, в подобных случаях лучше использовать функцию «array_key_exists()»:
if(array_key_exists(4, $array)) < unset($array[4]); >echo "";print_r($array); echo "";
Проверяем результат — да, все в порядке, значение удалено.
А в этой статье можно узнать как удалить элемент массива по значению.