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]   

> Описание: Выделить все одинаковые ключи
Abyrvalg
Отправлено: 05 Сентября, 2011 - 22:18:14
Post Id


Новичок


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


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




Привет тебе, о непобедимый 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;

Понятно, что можно написать функцию и всё такое, но может я велосипед изобретаю... Улыбка
 
 Top
LIME
Отправлено: 05 Сентября, 2011 - 22:31:13
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




Abyrvalg нет не изобретаете
придется по первому индексу пробежаться типа
foreach ($arr as $a) echo $a['x'];
выведет все элементы с индексом х для каждого элемента(первого индекса) массива $arr

(Отредактировано автором: 05 Сентября, 2011 - 22:33:15)

 
 Top
Abyrvalg
Отправлено: 06 Сентября, 2011 - 08:03:31
Post Id


Новичок


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


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




Большое спасибо! Жаль, я думал, что-нибудь встроенное есть Улыбка
 
 Top
EuGen Администратор
Отправлено: 06 Сентября, 2011 - 09:49:52
Post Id


Профессионал


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


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




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);


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Мелкий Супермодератор
Отправлено: 06 Сентября, 2011 - 10:01:13
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




EuGen, а цикл разве не эффективнее будет, чем callback?


-----
PostgreSQL DBA
 
 Top
EuGen Администратор
Отправлено: 06 Сентября, 2011 - 10:03:09
Post Id


Профессионал


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


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




В данном случае - вопрос подхода


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 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