Как удалить элемент массива в РНР?
В PHP есть массив, в котором экземпляры некоего класса. как удалить элемент с нужным индексом и сохранить остальные?
unset($MyArray[$i]) ?
То есть, размер массива не изменяется, все 'tktvtyns в норме, а на месте unset-енного элемента образуется элемент с empty()==true
Еще варианты?
Для реализации "стека" есть функции array_push() и array_pop()
Для "очереди" array_push() и array_shift()
Код:
$MyArray[$i]=$MyArray[count($MyArray)-1];
unset($MyArray[count($MyArray)-1]);
unset($MyArray[count($MyArray)-1]);
если же конечно ненужно чтоб последний элемент всегда оставался на своем месте
Код:
function refreshIndex($array)
{
$i = 0;
foreach($array as $value) {
$returnArray[$i] = $value;
$i++;
}
return $returnArray;
}
{
$i = 0;
foreach($array as $value) {
$returnArray[$i] = $value;
$i++;
}
return $returnArray;
}
То есть, размер массива не изменяется, все 'tktvtyns в норме, а на месте unset-енного элемента образуется элемент с empty()==true
Еще варианты?[/QUOTE]
Берем мануал к php. Ищем функцию unset(). Читаем статью до конца. Понимаем что unset() нам не подходит. В конце видим строцку "See also ...". А в ней ссылку на статью про функцию array_splice(). И, о чудо, находим нужную нам функцию.
Резюме:
1. Для вашей задачи использоуйте array_splice();
2. Учитесь читать доки.