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]   

> Без описания
Rojas
Отправлено: 14 Ноября, 2011 - 21:25:12
Post Id


Новичок


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


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




Добрый день!
Не могу придумать, как организовать выборку из многомерного массива.
Массив $array вида:
user[0]=>'a', type[0]=>'000';
user[1]=>'a', type[1]=>'111';
user[2]=>'d', type[2]=>'333';
user[3]=>'a', type[3]=>'444';
....
user[n]=>'z', type[n]=>'999';

Необходимо получить значения ключей type[], из всех полей, где ключ user[] == 'a'.
Возможно ли это? Или делать запрос к базе в цикле? Ужасно не хочется.
Спасибо.
 
 Top
Данил_123
Отправлено: 14 Ноября, 2011 - 21:33:24
Post Id


Участник


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


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




$array[0][1].. В си так многомерные доят


-----
http://mysitecost.ru
 
 Top
DeepVarvar Супермодератор
Отправлено: 14 Ноября, 2011 - 21:33:30
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




Странная структура. Приведите весь код пожалуйста.
Скорее всего можно сделать проще, удобнее, а значит и правильнее.
 
 Top
Rojas
Отправлено: 14 Ноября, 2011 - 21:39:51
Post Id


Новичок


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


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




Ну структура-то не такая, конечно.. это я для наглядности просто..
Итак, $array - это результат выборки из таблицы с полями:
id | flag | user | eventid|
1 | значение 1| user1| 10 |
2 | значение 2| user2| 11 |
-------------------------------- ------
n | значение n| usern| 20|
(Добавление)
Данил_123 пишет:
$array[0][1].. В си так многомерные доят

Спасибо.. попробую щас ))

(Отредактировано автором: 14 Ноября, 2011 - 21:40:53)

 
 Top
DeepVarvar Супермодератор
Отправлено: 14 Ноября, 2011 - 21:56:24
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




PHP:
скопировать код в буфер обмена
  1. foreach ($array as  $line)
  2.   if ($line['user'] == "a")
  3.     echo $line['eventid']."<br />";
 
 Top
Rojas
Отправлено: 14 Ноября, 2011 - 22:04:02
Post Id


Новичок


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


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




DeepVarvar пишет:
PHP:
скопировать код в буфер обмена
  1. foreach ($array as  $line)
  2.   if ($line['user'] == "a")
  3.     echo $line['eventid']."<br />";


Хм, спасибо )
Вопрос неправильно я сформулировал..
Значение ключа user - неизвестно.. мне просто надо выбрать те массивы из м.массива, в которых значения user одинаковы..
вот.

Чувствую, что надо использовать in_array, а как, не могу придумать.

(Отредактировано автором: 14 Ноября, 2011 - 22:09:09)

 
 Top
mik_name
Отправлено: 14 Ноября, 2011 - 23:29:12
Post Id


Новичок


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


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




Через usort сортируете массив по user, а потом один раз проходитесь while-ом делая с одинаковыми строками все что вам нужно.
Эту задачу можно было проще решить, пока данные были в БД.
 
 Top
Rojas
Отправлено: 15 Ноября, 2011 - 06:17:19
Post Id


Новичок


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


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




mik_name пишет:
Через usort сортируете массив по user, а потом один раз проходитесь while-ом делая с одинаковыми строками все что вам нужно.
Эту задачу можно было проще решить, пока данные были в БД.


Точно.. про while я не подумал.. буду пробовать.
Спасибо!
А массив у меня отсортирован как раз по нужному ключу, просто я затупил, как его в цикле foreach проверять..
 
 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