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. Сид Вишез - 15 Октября, 2011 - 13:38:34 - перейти к сообщению
Есть примерно такой массив:
PHP:
скопировать код в буфер обмена
  1. $t[]= array("name"=>"vrag", "x"=>"100", "y"=>"153");
  2. $t[]= array("name"=>"vrag3", "x"=>"150", "y"=>"153");
  3. $t[]= array("name"=>"vrag4", "x"=>"10", "y"=>"153");
  4. $t[]= array("name"=>"vrag7", "x"=>"160", "y"=>"153");
  5. $t[]= array("name"=>"vrag7", "x"=>"180", "y"=>"153");
  6. $t[]= array("name"=>"vrag5", "x"=>"189", "y"=>"153");

необходимо найти, у какого значения $t[] "x"=>"160", "y"=>"153", подозреваю, что можно это сделать с помощью array_walk_recursive, но 5 часов мучений не дали результата......... подскажите как или направтье в правильном напрявлении
2. illy - 15 Октября, 2011 - 14:12:09 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $t[]= array("name"=>"vrag", "x"=>"100", "y"=>"153");
  3. $t[]= array("name"=>"vrag3", "x"=>"150", "y"=>"153");
  4. $t[]= array("name"=>"vrag4", "x"=>"10", "y"=>"153");
  5. $t[]= array("name"=>"vrag7", "x"=>"160", "y"=>"153");
  6. $t[]= array("name"=>"vrag7", "x"=>"180", "y"=>"153");
  7. $t[]= array("name"=>"vrag5", "x"=>"189", "y"=>"153");
  8. for($n=0;$n!=sizeof($t);$n++){
  9. if($t[$n]['x']==160 && $t[$n]['y']==153){echo '$t['.$n.']';break;}
  10. }
  11. ?>
3. Сид Вишез - 15 Октября, 2011 - 14:30:57 - перейти к сообщению
ЫЫЫЫЫЫЫЫЫЫЫЫ!!!!!!! Спасибо огромное!!!!!!!!!!!!!!
а тут дошел до тогоже результа рекурсивным вызовом array_walk глядя на полученный работающий код хочется застрелиться
4. White - 15 Октября, 2011 - 14:39:20 - перейти к сообщению
illy а если в массиве пропущен индекс? или это ассоциативный массив?
PHP:
скопировать код в буфер обмена
  1. foreach($t as $index=>$value) if($value['x']==160 && $value['x']=153) {
  2.   echo $index;
  3.   break;
  4. }
5. illy - 15 Октября, 2011 - 15:48:50 - перейти к сообщению
наверное проверять надо isset()

 

Powered by ExBB FM 1.0 RC1