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
Форумы портала PHP.SU :: Версия для печати :: Простая манипуляция массивами
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Простая манипуляция массивами

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

1. Tmin10 - 03 Июня, 2011 - 15:33:03 - перейти к сообщению
Есть массив, в котором много пустых значений, как их убрать, чтобы сократить количество элементов массива?
2. SAD - 03 Июня, 2011 - 15:36:35 - перейти к сообщению
array_values может быть поможет
или сначала пробежаться по массиву, если пустой элемент - то unset
потом уж array_values
3. EuGen - 03 Июня, 2011 - 15:55:42 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $rgTest=array('','a','','b','c', 'd');
  2. $rgEmpty=array('');
  3. $rgResult=array_diff($rgTest, $rgEmpty);
  4. var_dump($rgResult);
4. SAD - 03 Июня, 2011 - 15:56:03 - перейти к сообщению
cool!
(Добавление)
даже так проще))
PHP:
скопировать код в буфер обмена
  1.      
  2.       $rgTest=array('','a','','b','c', 'd');
  3.       $rgResult=array_diff($rgTest, array(''));
  4.       var_dump($rgResult);
5. EuGen - 03 Июня, 2011 - 16:00:27 - перейти к сообщению
Я хотел специально отделить массив со значениями, которые считаются пустыми (вдруг туда еще отнесено будет, скажем, '0', 0 и т.п.). Сработает в любом случае, но нагляднее отделять.
6. Tmin10 - 03 Июня, 2011 - 16:12:37 - перейти к сообщению
Спасибо, ща протестирую
7. Tmin10 - 04 Июня, 2011 - 12:00:47 - перейти к сообщению
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. )

Как сделать, чтобы ключи шли подряд?
8. EuGen - 04 Июня, 2011 - 14:28:05 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $rgTest=array('','a','','b','c', 'd');
  2. $rgEmpty=array('');
  3. $rgResult=array_values(array_diff($rgTest, $rgEmpty));
  4. var_dump($rgResult);
9. Tmin10 - 04 Июня, 2011 - 14:38:49 - перейти к сообщению
а зачем вы включаете var_dump()? Она же сильно искажает получаемый массив...
10. OrmaJever - 04 Июня, 2011 - 15:05:32 - перейти к сообщению
Tmin10 пишет:
а зачем вы включаете var_dump()? Она же сильно искажает получаемый массив...

А?! Как искажает? Эта функция делает дамп переменой она не может ничего изменить в переменой. Можите её убрать он для наглядности резульатата написал
11. movEAX - 04 Июня, 2011 - 15:23:23 - перейти к сообщению

 

Powered by ExBB FM 1.0 RC1