Удалить последний элемент массива
Парсером Simple HTML DOM получаю массив: $otveti_utf8_o = $doc->find(«.message»); этот массив вывожу в обратном порядке: $otveti_utf8 = array_reverse($otveti_utf8_o); Теперь мне нужно удалить последний элемент из этого массива. Пытался делать с помощью функции array_pop:
$otveti_utf8_o = $doc->find(".message"); $otveti_utf8_a = array_reverse($otveti_utf8_o); $otveti_utf8 = array_pop($otveti_utf8_a); for ($i = 0; $i < count($otveti_utf8); $i++) < //удаляю первый элемент echo $otveti_utf8[$i]."
"; >
Cannot use object of type simple_html_dom_node as array in
Как удалить последний элемент массива в моем случае?
Отслеживать
задан 10 ноя 2017 в 13:22
2,362 4 4 золотых знака 32 32 серебряных знака 84 84 бронзовых знака
Вам прямым текстом пишет, что это не массив, то есть вам для начала надо привести к массиву ваш результат, а уже потом удалять
10 ноя 2017 в 13:52
@СашаБоричевский но а $otveti_utf8_o = $doc->find(«.message»); — это массив. почему тогда otveti_utf8_a уже не массив?
10 ноя 2017 в 13:53
посмотрите для начала var_dump обоих переменных. то, что array_reverse сработал еще ни разу не значит, что в переменной массив
Удалить первый и последний элемент из массива в PHP
В этом посте мы увидим, как удалить первый элемент из массива и вернуть его значение в PHP.
1. Удаление последнего элемента с помощью array_pop() функция
Стандартным решением для удаления последнего элемента из массива является использование array_pop() функция, которая возвращает значение удаленного элемента. Временная сложность array_pop() постоянно.
Следующий код извлекает элемент из конца массива, используя array_slice() функция, сокращающая массив на один элемент.
$arr = [ 1 , 2 , 3 , 4 , 5 ] ;
$last = array_pop ( $arr ) ;
print_r ( «The last item is » . $last . «\n» ) ;
print_r ( $arr ) ;
Последний пункт 5
Для ассоциативных массивов:
$arr = array ( «Nick» = > «20» , «John» = > «10» , «Paul» = > «18» ) ;
$last = array_pop ( $arr ) ;
print_r ( «The value of the last item is » . $last . «\n» ) ;
print_r ( $arr ) ;
Значение последнего элемента равно 18.
2. Удаление первого элемента с помощью array_shift() функция
Если вам нужно удалить первый элемент из массива, вы можете использовать array_shift() функция, которая удаляет и возвращает первый элемент массива. Временная сложность array_shift() является линейным, так как он должен пройти по всем элементам, чтобы переиндексировать их.
Следующий код сдвигает элемент с начала массива, используя array_slice() функция, сокращающая массив на один элемент.
Как удалить элемент массива в 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»!
Как удалить последний элемент из массива в PHP
Вы можете использовать PHP-функцию array_pop() для удаления элемента или значения из конца массива. Функция array_pop() также возвращает последнее значение массива. Однако, если массив пуст (или переменная не является массивом), возвращаемое значение будет NULL .
Давайте посмотрим на пример, чтобы понять, как работает эта функция:
"; var_dump($removed); ?>
![]()
Читайте также
Похожие примеры:
- Как удалить первый элемент из массива в PHP
- Как удалить повторяющиеся значения из массива в PHP
- Как удалить элемент из массива в PHP

