ArrayObject::offsetUnset
(PHP 5 >= 5.0.0, PHP 7)
ArrayObject::offsetUnset — Удаляет значение по указанному индексу
Описание
Удаляет значение по указанному индексу.
Список параметров
-
index
-
Индекс, значение которого необходимо удалить.
Возвращаемые значения
Эта функция не возвращает значения после выполнения.
Примеры
Пример #1 Пример использования ArrayObject::offsetUnset()
<?php
$arrayobj = new ArrayObject(array(0=>'zero',2=>'two'));
$arrayobj->offsetUnset(2);
var_dump($arrayobj);
?>
Результат выполнения данного примера:
object(ArrayObject)#1 (1) { [0]=> string(4) "zero" }
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Другие базовые расширения
- Стандартная библиотека PHP (SPL)
- Различные Классы и Интерфейсы
- Функция ArrayObject::append() - Добавляет значение в конец массива
- Функция ArrayObject::asort() - Сортирует записи по значению
- Функция ArrayObject::__construct() - Создает новый объект типа массив
- Функция ArrayObject::count() - Возвращает количество публичных свойств ArrayObject
- Функция ArrayObject::exchangeArray() - Заменяет текущий массив на другой
- Функция ArrayObject::getArrayCopy() - Создаёт копию ArrayObject
- Функция ArrayObject::getFlags() - Получает флаги поведения
- Функция ArrayObject::getIterator() - Создаёт новый итератор из экземпляра ArrayObject
- Функция ArrayObject::getIteratorClass() - Возвращает имя класса итератора для ArrayObject
- Функция ArrayObject::ksort() - Сортирует записи по ключам
- Функция ArrayObject::natcasesort() - Сортирует массив, используя регистронезависимый алгоритм "natural order"
- Функция ArrayObject::natsort() - Сортирует массив, используя алгоритм "natural order"
- Функция ArrayObject::offsetExists() - Проверяет, существует ли указанный индекс
- Функция ArrayObject::offsetGet() - Возвращает значение по указанному индексу
- Функция ArrayObject::offsetSet() - Установливает новое значение по указанному индексу
- Функция ArrayObject::offsetUnset() - Удаляет значение по указанному индексу
- Функция ArrayObject::serialize() - Сериализует ArrayObject
- Функция ArrayObject::setFlags() - Устанавливает флаги поведения
- Функция ArrayObject::setIteratorClass() - Устанавливает имя класса итератора для ArrayObject
- Функция ArrayObject::uasort() - Сортирует записи, используя пользовательскую функцию для сравнения элементов и сохраняя при этом связь ключ/значение
- Функция ArrayObject::uksort() - Сортирует массив по ключам, используя пользовательскую функцию для сравнения
- Функция ArrayObject::unserialize() - Десериализует ArrayObject
Коментарии
Be careful when you are working with collections. This method works with the reference of an array instead of its retrieved value.
So, you can do a mistake.
In order to understand have a look at code as follow:
<?php
class Employee
{
public function __construct()
{
}
}
class Company
{
private $arrEmployee;
public function __construct()
{
}
public function AddEmployee(Employee $oEmployee)
{
$this->arrEmployee[] = $oEmployee;
}
public function getEmployeeList()
{
return $this->arrEmployee;
}
}
?>
<?php
// first, creates the Company object
$oCompany = new Company();
// second, add 10 elements in
foreach( range(0, 9) as $index )
{
$oCompany->AddEmployee( new Employee() );
}
// get them
$arrEmployee = $oCompany->getEmployeeList();
// creates an ArrayObject from "$arrEmployee"
$arrayobject = new ArrayObject($arrEmployee);
// unsets its firt five elements
foreach( range(0, 4) as $index )
{
$arrayobject->offsetUnset($index);
}
// get them again
$arrEmployee = $oCompany->getEmployeeList();
// it shows just 5 elements, they were removed as reference via "offsetUnset" method
print_r($arrEmployee) ;
?>
When traversing recursively nested arrays using an RecursiveIteratorIterator, you cannot offsetUnset() or offsetSet() sub-array values, unless they are *all* declared as ArrayObject.