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]   

> Без описания
icommitter
Отправлено: 22 Сентября, 2016 - 14:10:58
Post Id


Новичок


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


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




Добрый день.

Есть массив:
$countries = array(
'AF'=>'AFGHANISTAN',
'AL'=>'ALBANIA',
'DZ'=>'ALGERIA',
);

Нужно из него получить строку "AF|AFGHANISTAN,AL|ALBANIA,DZ|ALGERIA".

Спасибо!
 
 Top
Sail
Отправлено: 22 Сентября, 2016 - 15:37:10
Post Id



Участник


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


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




icommitter, вариантов много Улыбка
PHP:
скопировать код в буфер обмена
  1. // один пример:
  2. $str = ''; $glue = '';
  3. foreach ($countries as $key => $value) {
  4.     $str.="{$glue}{$key}|{$value}";
  5.     if($glue == '') {$glue = ',';}
  6. }
  7. var_dump($str);
  8. // другой пример:
  9. $str = reset($countries);
  10. $str = key($countries)."|".$str;
  11. while(next($countries)) {
  12.     $str.=",".key($countries)."|".current($countries);
  13. }
  14. var_dump($str);
  15.  
 
 Top
madlabel
Отправлено: 22 Сентября, 2016 - 15:40:07
Post Id


Новичок


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


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




icommitter пишет:
Добрый день.

Есть массив:
$countries = array(
'AF'=>'AFGHANISTAN',
'AL'=>'ALBANIA',
'DZ'=>'ALGERIA',
);

Нужно из него получить строку "AF|AFGHANISTAN,AL|ALBANIA,DZ|ALGERIA".

Спасибо!


CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $lines = array();
  3.                 foreach($countries as $key =>$value){
  4.                         $lines[] = $key. '|' . $value;
  5.                 }
  6.                 echo implode(',', $lines);
  7.  
 
 Top
icommitter
Отправлено: 23 Сентября, 2016 - 12:20:38
Post Id


Новичок


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


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




Спасибо!

Мне вообще думалось что есть что-то стандартное, типа какой-то функции, которая сразу вернет то что нужно.

Сделал так:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.         $address_country_list_str;
  3.         foreach($address_country_list as $key => $val) {
  4.         $address_country_list_str .= $key."|".$val.",";
  5.         }
  6.         return rtrim($address_country_list_str, ",");
  7.  
 
 Top
Мелкий Супермодератор
Отправлено: 23 Сентября, 2016 - 12:33:21
Post Id



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


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


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




Чтобы была стандартная функция, которая бы сразу возвращала то что нужно - вы должны хотеть сериализовать массив во что-то стандартное. Например, в JSON.


-----
PostgreSQL DBA
 
 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