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. 3d_killer - 01 Октября, 2014 - 11:29:41 - перейти к сообщению
есть массив например:
PHP:
скопировать код в буфер обмена
  1.  
  2. $modules[]=array("module"=>"file_manager1","version"=>"1.0","name"=>"Файловый менеджер");
  3. $modules[]=array("module"=>"file_manager2","version"=>"2.0","name"=>"Файловый менеджер2");
  4. $modules[]=array("module"=>"file_manager3","version"=>"3.0","name"=>"Файловый менеджер3");

как зная "module"=>"file_manager2" достать остальные значения "version"=>"2.0","name"=>"Файловый менеджер2"
?
2. Мелкий - 01 Октября, 2014 - 11:35:58 - перейти к сообщению
foreach (rg as element)
if (element['module']== 'file_manager2')
return element
?
3. 3d_killer - 01 Октября, 2014 - 11:43:07 - перейти к сообщению
спс думал можно без перебора
4. kotyara1979 - 01 Октября, 2014 - 11:54:45 - перейти к сообщению
ну. например, так:

PHP:
скопировать код в буфер обмена
  1. foreach($arr1 as $key=>$arr2)
  2. {
  3.         if(array_search("file_manager2",$arr2)==='module')
  4.         print $key;
  5. }


или имелся ввиду какой-либо "хитрый" способ?
5. Panoptik - 01 Октября, 2014 - 11:58:01 - перейти к сообщению
в данном случае нужно засунуть поисковый индекс в ключ массива, и тогда вы будете обращаться по ключу

PHP:
скопировать код в буфер обмена
  1. $modules['file_manager1']=array("version"=>"1.0","name"=>"Файловый менеджер");
  2. $modules['file_manager2']=array("version"=>"2.0","name"=>"Файловый менеджер2");
  3. $modules['file_manager3']=array("version"=>"3.0","name"=>"Файловый менеджер3");


иначе же только по предложенным вариантам

 

Powered by ExBB FM 1.0 RC1