Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Удаление элемента массива по значению

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Никорагоа
Отправлено: 07 Сентября, 2012 - 14:40:09
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Апр. 2012  


Помог: 0 раз(а)




Всем привет! Как удалить элемент массива по значению(не по индексу)?
Вот код для наглядности
PHP:
скопировать код в буфер обмена
  1.  
  2. $mass = array(71, 55, 63, 12, 33); //массив
  3. $elem_cot_nado_udalit = 63; //элемент который надо удалить
  4.  

Но только есть одно НО: елемента которого надо удалить может и не быть в массиве например так
PHP:
скопировать код в буфер обмена
  1.  
  2. $mass = array(71, 55, 63, 12, 33); //массив
  3. $elem_cot_nado_udalit = 100; //элемент который надо удалить
  4.  

Прошу помогите уже час сижу найти не чего не могу.... и на ум ничего не приходит((((
 
 Top
Мелкий Супермодератор
Отправлено: 07 Сентября, 2012 - 14:48:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




PHP:
скопировать код в буфер обмена
  1. $mass = array(71, 55, 63, 12, 33); //массив
  2. $elem = 635;
  3. $key=array_search($elem, $mass);
  4. if (false !== $key) unset($mass[ $key ]);
  5.  
  6. var_dump($key, $mass);


-----
PostgreSQL DBA
 
 Top
Кирюха
Отправлено: 07 Сентября, 2012 - 22:38:30
Post Id


Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




все отлично работает Юольшое спасибо, но вот только как сделать так что бы индексы не нарушались?Т е элемент удаляется вместе с индексом. А надо чтобы индексы шли по порядку

(Отредактировано автором: 07 Сентября, 2012 - 22:39:52)

 
 Top
snikers987
Отправлено: 07 Сентября, 2012 - 23:46:38
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




Кирюха sort()


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
DelphinPRO
Отправлено: 08 Сентября, 2012 - 08:33:49
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Кирюха
array_values

(Отредактировано автором: 08 Сентября, 2012 - 08:34:30)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
SmileMan7
Отправлено: 17 Марта, 2017 - 16:08:30
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Март 2017  


Помог: 0 раз(а)




есть ещё такой способ.

покрывает ситуации, когда элемента может не быть в массиве и пересчитывает индексы.

PHP:
скопировать код в буфер обмена
  1. $first_array = ['one', 'two', 'three'];
  2.  
  3.  
  4. $second_array = array_diff($first_array, ['two']);
  5.  
  6. var_dump($first_array);
  7.  
  8. echo '<br>';
  9.  
  10. var_dump($second_array);



результат:
Спойлер (Отобразить)


если массив с идексами, то они сохраняются.

PHP:
скопировать код в буфер обмена
  1. $first_array = ['a' => 'one', 'b' => 'two', 'c' => 'three'];
  2.  
  3. $second_array = array_diff($first_array, ['two']);
  4.  
  5. var_dump($first_array);
  6.  
  7. echo '<br>';
  8.  
  9. var_dump($second_array);


результат:
Спойлер (Отобразить)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB