Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Строка из значений массива 
:(
    Опции темы
diez
Дата 8.8.2007, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 7.8.2007

Репутация: -1
Всего: -1



Задача получить строку из значений глобального массива, например $_POSt.
Причем перед формированием строки выполнить проверку на существование значения,
и если значение пустое в строку не влючать. Все составляющие строки разделяются запятой.

Заранее всем огромное человеческое спасибо за любую помощь!!!
PM MAIL   Вверх
Mal Hack
Дата 8.8.2007, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



http://php.net/implode, а затем регуляркой грохнуть все проблемы между запятыми.
PM ICQ   Вверх
sTa1kEr
Дата 8.8.2007, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



diez, 
Можно сначала отфильтровать массив, а затем объединить.
Код

$array = array("one", "", "two", "three");
$array = array_filter($array, create_function('$a','return !empty($a);'));
echo implode(", ", $array);

Или можно применить функцию array_reduce()
Код

$array = array("one", "", "two", "three");
$str = array_reduce($array, create_function('$a,$b', 'return $a.(empty($b) || $a === null ? "" : ", ").$b;'));
echo $str;


Это сообщение отредактировал(а) sTa1kEr - 8.8.2007, 17:34
PM MAIL   Вверх
Mal Hack
Дата 8.8.2007, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



sTa1kEr, более тяжеловесно...
PM ICQ   Вверх
sTa1kEr
Дата 8.8.2007, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



Цитата(Mal Hack @  8.8.2007,  19:56 Найти цитируемый пост)
sTa1kEr, более тяжеловесно... 

Да, но более универсально и исключаются ситуации когда в самом массиве присутствуют запятые.

Кстати, еще один метод отфильтровать пустые элементы - это заполнить еще один массив пустыми значениями и вывести расхождения.
Код

$array = array("one", "", null, "two", "three");
$array = array_diff($array, array_fill(0, count($array), ""));
echo implode(", ", $array);

PM MAIL   Вверх
Mal Hack
Дата 8.8.2007, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Да, ты прав. 
Я бы сделал array_walk, впихнув туда свою функцию, в которой:
if(empty($item1))
unset $item1;
PM ICQ   Вверх
BrainWorker
Дата 9.8.2007, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 553
Регистрация: 9.8.2007
Где: Дубна, Россия

Репутация: 1
Всего: 2



Код

implode(',', array_values($_POST))

PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0905 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.