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 :: fatal error при попытке unset из массива

 PHP.SU

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


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

> Без описания
maxy666
Отправлено: 28 Декабря, 2013 - 18:09:10
Post Id


Новичок


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


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




Требуется удалить данные, если они присутствуют в массива, удаляю с помощью unset.
Делаю с помощью кода(циклом так как элементов postschema_fees_selected может быть от 0 до 11):
PHP:
скопировать код в буфер обмена
  1. for($i=0;$i<=11;$i++)
  2.             {
  3.                 if($post["postschema_fees_selected[$i]"]!="on")
  4.                 {        
  5.                   if (!empty($post["postschema_fees_selected[$i]"]))
  6.                     {                    
  7.                         unset($post["postschema_fees_selected[$i]"]);
  8.                     }      
  9.                   if (!empty($post["postschema_fees_values[price1][$i]"]))
  10.                     {
  11.                         unset($post["postschema_fees_values[price1][$i]"]);
  12.                     }
  13.                    
  14.                   if (!empty($post["postschema_fees_values[price2][$i]"]))
  15.                     {
  16.                         unset($post["postschema_fees_values[price2][$i]"]);
  17.                     }
  18.                    
  19.                   if (!empty($post["postschema_fees_values[count][$i]"]))
  20.                     {
  21.                         unset($post["postschema_fees_values[count][$i]"]);
  22.                     }
  23.                  
  24.                
  25.                 }
  26.             }  
  27.            


Но почему то иногда появляется ошибка, которая просто останавливает скрипт:
Fatal error Cannot unset string offsets на строке где unset($post["postschema_fees_selected[$i]"]);

Возможно я не верно делаю проверку: if (!empty($post["postschema_fees_selected[$i]"]))

Подскажите пожалуйста как избежать этой фатальной ошибки. Может как по другом делать проверку if (!empty).
 
 Top
OrmaJever Модератор
Отправлено: 28 Декабря, 2013 - 18:18:25
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




PHP:
скопировать код в буфер обмена
  1. $post["postschema_fees_values[price1][$i]"]

Что вы хотели этим сказать?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
maxy666
Отправлено: 28 Декабря, 2013 - 18:42:18
Post Id


Новичок


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


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




Это часть кода выдернутого из скрипта который правит лоты на аукро. Скрипт на php с использования curl. Cуть скрипта в том что на ход задаем ему лот, и он править на нем цену или еще какие то параметры и сохраняется.

Сохраняется все ок, только сам иногда проставляет чекбосы стоиомсти доставки.

Посоветовали удалять из массива $post данные о доставки, функцией unset и выше описанным кодом.

[postschema_fees_selected[3]] => off [postschema_fees_values[price1][3]] => 0,00 [postschema_fees_values[price2][3]] => 0,00

[postschema_fees_selected[3]] - это сам пункт доставки(например номер 3 - это новая почта)
price1 - это стоимость доставки первой посылки
price2 - это стоимость доставки второй и следующих посылок.


Кодом $post["postschema_fees_selected[$i]"]!="on" проверяю включен ли этот вид доставки.
Иногда все удаляется нормально, но иногда unset выкидывает ошибку.
Посоветуйте как сделать какие то перепроверки перед unset что бы ошибки (фатальной) не выкидывало.
 
 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