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]   

> Без описания
Tmin10
Отправлено: 03 Июня, 2011 - 15:33:03
Post Id



Частый гость


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


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




Есть массив, в котором много пустых значений, как их убрать, чтобы сократить количество элементов массива?
 
 Top
SAD
Отправлено: 03 Июня, 2011 - 15:36:35
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


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




array_values может быть поможет
или сначала пробежаться по массиву, если пустой элемент - то unset
потом уж array_values
 
 Top
EuGen Администратор
Отправлено: 03 Июня, 2011 - 15:55:42
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




PHP:
скопировать код в буфер обмена
  1. $rgTest=array('','a','','b','c', 'd');
  2. $rgEmpty=array('');
  3. $rgResult=array_diff($rgTest, $rgEmpty);
  4. var_dump($rgResult);


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
SAD
Отправлено: 03 Июня, 2011 - 15:56:03
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


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




cool!
(Добавление)
даже так проще))
PHP:
скопировать код в буфер обмена
  1.      
  2.       $rgTest=array('','a','','b','c', 'd');
  3.       $rgResult=array_diff($rgTest, array(''));
  4.       var_dump($rgResult);
 
 Top
EuGen Администратор
Отправлено: 03 Июня, 2011 - 16:00:27
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Я хотел специально отделить массив со значениями, которые считаются пустыми (вдруг туда еще отнесено будет, скажем, '0', 0 и т.п.). Сработает в любом случае, но нагляднее отделять.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Tmin10
Отправлено: 03 Июня, 2011 - 16:12:37
Post Id



Частый гость


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


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




Спасибо, ща протестирую
 
 Top
Tmin10
Отправлено: 04 Июня, 2011 - 12:00:47
Post Id



Частый гость


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


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




EuGen пишет:
Я хотел специально отделить массив со значениями, которые считаются пустыми (вдруг туда еще отнесено будет, скажем, '0', 0 и т.п.).

Да, так действительно удобней, у мя в этом массиве уже 4 элемента)
(Добавление)
А теперь такой вопрос, после вышеописанных операция получается дырявый массив, т.е. ключи идут с разрывами:
CODE (htmlphp):
скопировать код в буфер обмена
  1. (
  2.     [0] => Dmitriy
  3.     [1] => Kochkurow
  4.     [16] => 105
  5.     [32] => 0.72
  6.     [33] => RUB
  7.     [49] => Buy
  8. )

Как сделать, чтобы ключи шли подряд?
 
 Top
EuGen Администратор
Отправлено: 04 Июня, 2011 - 14:28:05
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




PHP:
скопировать код в буфер обмена
  1. $rgTest=array('','a','','b','c', 'd');
  2. $rgEmpty=array('');
  3. $rgResult=array_values(array_diff($rgTest, $rgEmpty));
  4. var_dump($rgResult);


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Tmin10
Отправлено: 04 Июня, 2011 - 14:38:49
Post Id



Частый гость


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


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




а зачем вы включаете var_dump()? Она же сильно искажает получаемый массив...

(Отредактировано автором: 04 Июня, 2011 - 14:40:32)

 
 Top
OrmaJever Модератор
Отправлено: 04 Июня, 2011 - 15:05:32
Post Id



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


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


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




Tmin10 пишет:
а зачем вы включаете var_dump()? Она же сильно искажает получаемый массив...

А?! Как искажает? Эта функция делает дамп переменой она не может ничего изменить в переменой. Можите её убрать он для наглядности резульатата написал


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
movEAX
Отправлено: 04 Июня, 2011 - 15:23:23
Post Id



Частый посетитель


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


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






-----
армия.. самое убогое место
 
 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