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]   

> Без описания
ninzzo
Отправлено: 23 Октября, 2014 - 16:26:44
Post Id


Частый гость


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


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




есть массив:

CODE (htmlphp):
скопировать код в буфер обмена
  1. stdClass Object
  2. (
  3.     [item] => Array
  4.         (
  5.             [0] => stdClass Object
  6.                 (
  7.                     [No] => 584276
  8.                     [ViewType] => v
  9.                     [SizeType] => m
  10.                     [FileName] => 584276_v01_m.jpg
  11.                     [Created] => 2010-10-05T16:58:56
  12.                     [Size] => 18123
  13.                     [Width] => 292
  14.                     [Height] => 264
  15.                 )
  16.  
  17.             [1] => stdClass Object
  18.                 (
  19.                     [No] => 584276
  20.                     [ViewType] => v
  21.                     [SizeType] => s
  22.                     [FileName] => 584276_v01_s.jpg
  23.                     [Created] => 2010-10-05T16:58:56
  24.                     [Size] => 3359
  25.                     [Width] => 100
  26.                     [Height] => 90
  27.                 )
  28.  
  29.             [2] => stdClass Object
  30.                 (
  31.                     [No] => 584277
  32.                     [ViewType] => v
  33.                     [SizeType] => m
  34.                     [FileName] => 584277_v01_m.jpg
  35.                     [Created] => 2010-10-08T13:00:40
  36.                     [Size] => 11224
  37.                     [Width] => 317
  38.                     [Height] => 202
  39.                 )
  40.  
  41.             [3] => stdClass Object
  42.                 (
  43.                     [No] => 584278
  44.                     [ViewType] => v
  45.                     [SizeType] => s
  46.                     [FileName] => 584277_v01_s.jpg
  47.                     [Created] => 2010-10-08T13:00:41
  48.                     [Size] => 2788
  49.                     [Width] => 100
  50.                     [Height] => 64
  51.                 )
  52. .... и так до 10000


на это же странице у меня выводится много товаров.

Товары вывожу через foreach.

Допустим выводится товар с параметром val = 584278

в таком случае нужно получить из приведенного выше массива [FileName] => 584277_v01_s.jpg когда его [No] => 584278

Товаров много. Как это можно реализовать по умному?
не буду же я выводе каждого товара искать его в массиве.

массив огромный и товаров много выводится. help
 
 Top
RickMan
Отправлено: 23 Октября, 2014 - 16:36:42
Post Id


Участник


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


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




http://www.php.su/functions/?array-search - это не подходит?
 
 Top
Dastor
Отправлено: 23 Октября, 2014 - 17:23:50
Post Id


Гость


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


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




Т.е. в foreach Вы обходите один массив, а информация о товаре хранится в другом объекте?

Я думаю что можно "индексировать" массив, изменив его структуру.
В качестве ключа установить No
Должно получится что-то подобное
PHP:
скопировать код в буфер обмена
  1.  
  2. [584276] => stdClass Object
  3.                 (
  4.                     [No] => 584276
  5.                     [ViewType] => v
  6.                     [SizeType] => m
  7.                     [FileName] => 584276_v01_m.jpg
  8.                     [Created] => 2010-10-05T16:58:56
  9.                     [Size] => 18123
  10.                     [Width] => 292
  11.                     [Height] => 264
  12.                 )
  13.  
  14.             [584276] => stdClass Object
  15.                 (
  16.                     [No] => 584276
  17.                     [ViewType] => v
  18.                     [SizeType] => s
  19.                     [FileName] => 584276_v01_s.jpg
  20.                     [Created] => 2010-10-05T16:58:56
  21.                     [Size] => 3359
  22.                     [Width] => 100
  23.                     [Height] => 90
  24.                 )
  25.  


И уже потом искать информацию по нужному No
 
 Top
ninzzo
Отправлено: 24 Октября, 2014 - 23:47:46
Post Id


Частый гость


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


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




Цитата:
Т.е. в foreach Вы обходите один массив, а информация о товаре хранится в другом объекте?


есть 2 массива по 15000 строк и 200 000

и нужно из одного взять второе...

Цитата:
Я думаю что можно "индексировать" массив, изменив его структуру



а как?))


пока тупо переписал масси. но это не круто.

Пока тупое решение:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $im = array();
  3.  
  4. foreach($первый масси as $one){
  5.  
  6. $im[$one->no] = $one->FileName;
  7. }



А дальше в выводе второго массива просто вывожу данные первого массив

типа echo $im[$val->no]; получаю то что нужно, НО .... что бы создать $im() я запрашиваю десятски тысяч строк..... потом их перезаписываю...

можно что то рпидумать ? готов заплатить!!!!!! нам главное скорость работы!
 
 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