unset у массива

Статус
В этой теме нельзя размещать новые ответы.

phillip

Полезный
Регистрация
4 Сен 2007
Сообщения
411
Реакции
15
Есть массив например
PHP:
$names[0]="Апельсин";
$names[1]="Банан";
$names[2]="Груша";
$names[3]="Помидор";

потом я делаю unset($names[1]);
далее строка echo $names[mt_rand(0,count($names)-1)];
и случайно выбор падает на этот самый который я удалил. Соответственно, мы получаем ошибку. Как быть?
 
echo $names[array_rand($names)];
 
После того как удалил перепакуй масив. После удаления у тебя просто удалиться ключ со значением, но массив не отсортируеться. Соответственно когда у тебя рандом например выдаст 1 такого ключа он не найдет в масиве, а если ты его перепакуешь все станет на свои места
 
И смысл в этом, если можно обойтись?
 
После того как удалил перепакуй масив. После удаления у тебя просто удалиться ключ со значением, но массив не отсортируеться. Соответственно когда у тебя рандом например выдаст 1 такого ключа он не найдет в масиве, а если ты его перепакуешь все станет на свои места
А зачем? Чем вышеуказаная функция не нравится?
 
Есть такая чудная функция array_splice

Для других нужд при использовании unset нужно будет делать дополнительные проверки, например, при проходе массива foreach и т.д. Лучше уж сразу упростить себе жизнь и сэкономить процессорное время ;)
 
Есть такая чудная функция array_splice
Для других нужд при использовании unset нужно будет делать дополнительные проверки, например, при проходе массива foreach и т.д. Лучше уж сразу упростить себе жизнь и сэкономить процессорное время ;)
Обоснуй...
 

Для других нужд при использовании unset нужно будет делать дополнительные проверки, например, при проходе массива foreach и т.д. Лучше уж сразу упростить себе жизнь и сэкономить процессорное время

А этого мало?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху