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]   

> Описание: Поиск в многомерном массиве
myocean
Отправлено: 21 Августа, 2011 - 18:57:36
Post Id


Гость


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


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




Здравствуйте!

Подскажите, каким образом лучше организовать поиск в многомерном массиве, по третьему ключу каждого вложенного массива, в данном случае необходимо проверить если 3-е поле == 'foo', вывести все ключи массива удовлетворяющие этому условию?

Array ( [0] => Array ( [0] => 0 [1] => 0 [2] => bad ) [1] => Array ( [0] => 1 [1] => 1 [2] => foo ) [2] => Array ( [0] => 2 [1] => 4 [2] => foo ) [3] => Array ( [0] => 3 [1] => 9 [2] => foo ) [4] => Array ( [0] => 4 [1] => 16 [2] => bad )
...
[97] => Array ( [0] => 97 [1] => 9409 [2] => foo ) [98] => Array ( [0] => 98 [1] => 9604 [2] => foo ) [99] => Array ( [0] => 99 [1] => 9801 [2] => foo ) )


Спасибо!
 
 Top
illy
Отправлено: 21 Августа, 2011 - 19:10:58
Post Id



Участник


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


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




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $mass=array(array('0','0','bad'),array('0','0','foo'));
  3. for($n=0;$n!=sizeof($mass);$n++){
  4. if($mass[$n][2]=='foo'){
  5. echo '$mass['.$n.'][2]=foo<br>';
  6. }
  7. }
  8. ?>


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
myocean
Отправлено: 21 Августа, 2011 - 22:42:13
Post Id


Гость


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


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




illy, спасибо...
Правда такой способ был известен...
Интересно, есть ли альтернатива простому перебору?
 
 Top
illy
Отправлено: 21 Августа, 2011 - 23:20:43
Post Id



Участник


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


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




PHP:
скопировать код в буфер обмена
  1. $mass=array(array('0','0','bad'),array('0','0','foo'),array('0','0','foo'));
  2. foreach($mass as $d){
  3. if(in_array('foo',$d)){
  4. echo 's';
  5. }
  6. }


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
White
Отправлено: 21 Августа, 2011 - 23:27:18
Post Id



Частый посетитель


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


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




myocean есть еще usort()


-----
if(time()>1356048000) die();
 
 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