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]   

> Без описания
goooooch
Отправлено: 13 Декабря, 2011 - 08:36:21
Post Id



Гость


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


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




Здравствуйте, в переменной $row лежат массивы примерно такого вида:

PHP:
скопировать код в буфер обмена
  1.  
  2. (
  3. [shop_order_items_id] => 105
  4. [shop_items_catalog_item_id] => 200
  5. )
  6.  
  7. (
  8. [shop_order_items_id] => 104
  9. [shop_items_catalog_item_id] => 182  
  10. )
  11.  


Мне нужно сделать строку вида $a=(a, b, c,...)

где a, b, c — это [shop_items_catalog_item_id] через запятую, т.е. в приведенном примере должна получить ся строка $a=(200, 182)
 
 Top
EuGen Администратор
Отправлено: 13 Декабря, 2011 - 08:42:16
Post Id


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


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


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




goooooch пишет:
в переменной $row лежат массивы

То есть $row - суть массив массивов?
Тогда

PHP:
скопировать код в буфер обмена
  1. $row=array(
  2. array('shop_order_items_id'=> 105, 'shop_items_catalog_item_id'=>200),
  3. array('shop_order_items_id'=> 104, 'shop_items_catalog_item_id'=>182),
  4. );
  5. $rgResult=array_map(function($rgElement)
  6. {
  7.    return $rgElement['shop_items_catalog_item_id'];
  8. }, $row);
  9.  
  10. //var_dump($rgResult);

Если нужна строка, то далее так:

PHP:
скопировать код в буфер обмена
  1. $sResult='('.join(',', $rgResult).')';


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Самогонщик
Отправлено: 13 Декабря, 2011 - 08:42:33
Post Id



Посетитель


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


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




PHP:
скопировать код в буфер обмена
  1. $row = array(Array ( 'shop_order_items_id' => 105,'shop_items_catalog_item_id' => 200 ),
  2. Array ('shop_order_items_id' => 104, 'shop_items_catalog_item_id' => 182  ));
  3.  
  4.  
  5. $a = array();
  6. foreach($row as $r)
  7.   $a[] = $r['shop_items_catalog_item_id'];
  8.  
  9. echo join($a, ', ');

(Добавление)
Лямбды!
 
 Top
goooooch
Отправлено: 13 Декабря, 2011 - 09:07:01
Post Id



Гость


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


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




Дело в том, что $row не массив, а результат вот такой конструкции
PHP:
скопировать код в буфер обмена
  1.  
  2. while($row = mysql_fetch_assoc($resource))
  3.  
  4.             {
  5.  
  6.             print_r($row);
  7.  
  8.             }
  9.  
 
 Top
EuGen Администратор
Отправлено: 13 Декабря, 2011 - 09:11:54
Post Id


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


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


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




PHP:
скопировать код в буфер обмена
  1. $rgResult=array();
  2. while($row = mysql_fetch_assoc($resource))
  3. {
  4.    $rgResult[]=$row['shop_items_catalog_item_id'];
  5. }
  6. $sResult='('.join(',', $rgResult).')';


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 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