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
Форумы портала PHP.SU :: Версия для печати :: Поиск в многомерном массиве
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Поиск в многомерном массиве

Страниц (1): [1]
 

1. myocean - 21 Августа, 2011 - 18:57:36 - перейти к сообщению
Здравствуйте!

Подскажите, каким образом лучше организовать поиск в многомерном массиве, по третьему ключу каждого вложенного массива, в данном случае необходимо проверить если 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 ) )


Спасибо!
2. illy - 21 Августа, 2011 - 19:10:58 - перейти к сообщению
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. ?>
3. myocean - 21 Августа, 2011 - 22:42:13 - перейти к сообщению
illy, спасибо...
Правда такой способ был известен...
Интересно, есть ли альтернатива простому перебору?
4. illy - 21 Августа, 2011 - 23:20:43 - перейти к сообщению
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. }
5. White - 21 Августа, 2011 - 23:27:18 - перейти к сообщению
myocean есть еще usort()

 

Powered by ExBB FM 1.0 RC1