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. Abyrvalg - 05 Сентября, 2011 - 22:18:14 - перейти к сообщению
Привет тебе, о непобедимый All!

Есть массив примерно такого вида:
CODE (text):
скопировать код в буфер обмена
  1. $arr[0]['x'] = 1;
  2. $src[0]['y'] = 2;
  3. $src[0]['z'] = 3;
  4. $src[1]['x'] = 4;
  5. $src[1]['y'] = 5;
  6. $src[1]['z'] = 6;
  7. $src[2]['x'] = 7;
  8. $src[2]['y'] = 8;
  9. $src[2]['z'] = 9;

Есть ли возможность штатными средствами выделить все элементы с ключом 'x'? Т.е. получить на выходе массив:
CODE (text):
скопировать код в буфер обмена
  1. $res[0] = 1;
  2. $res[1] = 4;
  3. $res[2] = 7;

Понятно, что можно написать функцию и всё такое, но может я велосипед изобретаю... Улыбка
2. LIME - 05 Сентября, 2011 - 22:31:13 - перейти к сообщению
Abyrvalg нет не изобретаете
придется по первому индексу пробежаться типа
foreach ($arr as $a) echo $a['x'];
выведет все элементы с индексом х для каждого элемента(первого индекса) массива $arr
3. Abyrvalg - 06 Сентября, 2011 - 08:03:31 - перейти к сообщению
Большое спасибо! Жаль, я думал, что-нибудь встроенное есть Улыбка
4. EuGen - 06 Сентября, 2011 - 09:49:52 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $src=array();
  2. $src[0]['x'] = 1;
  3. $src[0]['y'] = 2;
  4. $src[0]['z'] = 3;
  5. $src[1]['x'] = 4;
  6. $src[1]['y'] = 5;
  7. $src[1]['z'] = 6;
  8. $src[2]['x'] = 7;
  9. $src[2]['y'] = 8;
  10. $src[2]['z'] = 9;
  11.  
  12. $rgResult=array();
  13. array_map(function($e) use (&$rgResult){$rgResult[]=$e['x'];}, $src);
  14. //var_dump($rgResult);
5. Мелкий - 06 Сентября, 2011 - 10:01:13 - перейти к сообщению
EuGen, а цикл разве не эффективнее будет, чем callback?
6. EuGen - 06 Сентября, 2011 - 10:03:09 - перейти к сообщению
В данном случае - вопрос подхода

 

Powered by ExBB FM 1.0 RC1