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]   

> Без описания
lunozwetka
Отправлено: 06 Августа, 2012 - 15:35:26
Post Id


Новичок


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


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




Нужно отфильтровать массив по одному числовому элементу.
Массив такой структуры:
PHP:
скопировать код в буфер обмена
  1.  
  2. (
  3. [33] => Array
  4.       (
  5.             [0] => Array
  6.                 (
  7.                     [ID] => 3667
  8.                     [~ID] => 3667
  9.                     [PREVIEW_PICTURE] => Array
  10.                         (
  11.                             [ID] => 6353
  12.                             [SRC] => /upload/iblock/c1e/c1e2c71b3b4edbd638b8ee11a23970d7.jpeg
  13.                         )
  14.                     [CREATED_DATE] => 2012.08.02
  15.                     [BP_PUBLISHED] => Y
  16.                     [P] => Array
  17.                         (
  18.                             [PRICE] => Array
  19.                                 (
  20.                                     [ID] => 103
  21.                                     [VALUE] => 500
  22.                                 )
  23.  
  24.                         )
  25.  
  26.                 )
  27.  
  28.             [1] => Array
  29.                 (
  30.                     [ID] => 3624
  31.                     [~ID] => 3624
  32.                     [CREATED_DATE] => 2012.07.31
  33.                     [BP_PUBLISHED] => Y
  34.                     [P] => Array
  35.                         (
  36.                             [PRICE] => Array
  37.                                 (
  38.                                     [ID] => 103
  39.                                     [VALUE] => 80
  40.                                 )
  41.                         )
  42.  
  43.                 )
  44.  
  45.         )
  46. );
  47.  

Перебираю 2 раза freach
$items - хранит массив после второго перебора
PHP:
скопировать код в буфер обмена
  1.  
  2.  function odd($var) {
  3.             return ($var["P"]["PRICE"]["VALUE"] > "100");
  4.         }
  5.             echo "<pre>"; print_r(array_filter($items, "odd")); echo "</pre>";
  6.  

Ничего не выходит.
Я вообще в правильном направлении двигаюсь?
 
 Top
LIME
Отправлено: 06 Августа, 2012 - 15:41:39
Post Id


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


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


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




в правильном
но убедитесь что правильно сформировали входящий массив $items
 
 Top
lunozwetka
Отправлено: 06 Августа, 2012 - 15:53:53
Post Id


Новичок


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


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




PHP:
скопировать код в буфер обмена
  1.         (
  2.                 [ID] => 3667
  3.                 [~ID] => 3667
  4.                 [PREVIEW_PICTURE] => Array
  5.                         (
  6.                                 [ID] => 6353
  7.                                 [TIMESTAMP_X] => 02.08.2012 13:05:15
  8.                                 [MODULE_ID] => iblock
  9.                                 [HEIGHT] => 333
  10.                                 [WIDTH] => 500
  11.                                 [FILE_SIZE] => 145390
  12.                                 [CONTENT_TYPE] => image/jpeg
  13.                                 [SUBDIR] => iblock/c1e
  14.                                 [FILE_NAME] => c1e2c71b3b4edbd638b8ee11a23970d7.jpeg
  15.                                 [ORIGINAL_NAME] => 642445.jpeg
  16.                                 [DESCRIPTION] =>
  17.                                 [HANDLER_ID] =>
  18.                                 [~src] =>
  19.                                 [SRC] => /upload/iblock/c1e/c1e2c71b3b4edbd638b8ee11a23970d7.jpeg
  20.                         )
  21.                 [CREATED_DATE] => 2012.08.02
  22.                 [BP_PUBLISHED] => Y
  23.                 [P] => Array
  24.                         (
  25.                                 [PRICE] => Array
  26.                                         (
  27.                                                 [ID] => 103
  28.                                                 [VALUE] => 500
  29.                                         )
  30.  
  31.                         )
  32.  
  33.         )
  34.  
  35.         (
  36.                 [ID] => 3624
  37.                 [~ID] => 3624
  38.                 [CREATED_DATE] => 2012.07.31
  39.                 [BP_PUBLISHED] => Y
  40.                 [P] => Array
  41.                         (
  42.                                 [PRICE] => Array
  43.                                         (
  44.                                                 [ID] => 103
  45.                                                 [VALUE] => 80
  46.                                         )
  47.                         )
  48.  
  49.         )
  50.  

такая структура храниться в $items.
Fatal error: Cannot use string offset as an array на строке:
return ($var["P"]["PRICE"]["VALUE"] > "100");

(Отредактировано автором: 06 Августа, 2012 - 15:54:18)

 
 Top
tuareg
Отправлено: 06 Августа, 2012 - 20:32:57
Post Id


Участник


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


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




Вы не правильно формируете условия, чтобы понять почему сделайте так
PHP:
скопировать код в буфер обмена
  1.  
  2. echo "<pre>"; print_r($items["P"]["PRICE"]["VALUE"]); echo "</pre>";
  3.  
 
 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