Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Получить ветку многомерного массива по индексу
 
 автор: mihdan   (25.02.2013 в 16:18)   письмо автору
 
 

Есть многомерный ассоциативный массив, как, зная индекс получить ветку?


<?php
$test 
= array(
        
'q' => 'foo',
        
'w' => array(
            
'phone' => array ('555555''444444')
        ),
        
'e' => 'bar'
    
);
?>


Вот из этого массива надо получить массив с индексом phone

  Ответить  
 
 автор: confirm   (25.02.2013 в 17:20)   письмо автору
 
   для: mihdan   (25.02.2013 в 16:18)
 

А phone разве индекс массива?
<?
array_walk
($test, function($v$k) use(&$test) {
   if(
is_array($v)) $test current($v);
});

  Ответить  
 
 автор: mihdan   (25.02.2013 в 17:31)   письмо автору
 
   для: confirm   (25.02.2013 в 17:20)
 

>А phone разве индекс массива
Индекс массива второго уровня. Или я не прав?

Как быть, если глубина вложенности будет еще больше?

  Ответить  
 
 автор: confirm   (25.02.2013 в 17:56)   письмо автору
 
   для: mihdan   (25.02.2013 в 17:31)
 

Это ключ, а не индекс.
А если было бы решение на любую глубину, то все равно бы новые условия появились?
Если глубина может быть произвольной, да еще и не одно значение являющееся массивом, значит проверяйте вложение до конца.
Может быть лучше подумать о выгодной структуре массива, а не городить потом нечто невообразимое?

  Ответить  
 
 автор: mihdan   (27.02.2013 в 02:51)   письмо автору
 
   для: confirm   (25.02.2013 в 17:56)
 

В форме поля имеют имена

company[phone][] - телефонов бывает несколько
company[name] - имя компании

В скрипте они попадают в сессию с одноименными названиями.

После обработки массив SESSION['company'] уничтожается.

Как тогда их проще обработать?

Раньше, когда не было массивов, данные из POST, GET получались при помощи самописной функции getParam('ключ массива REQUEST', 'значение по умолчанию', 'тип данных, например int').

Она по переданному ключу брала из массива REQUEST данные проверяла их на соответствие заданному типу и возвращала результат.

Теперь хочется проще сделать, но нет мыслей

  Ответить  
 
 автор: confirm   (27.02.2013 в 04:25)   письмо автору
 
   для: mihdan   (27.02.2013 в 02:51)
 

Интересно, вы знаете гарантированно, что форма содержит ключ phone (не понятно зачем прятать еще и в ключ company, словно эта форма еще и на служебных собак этой компании рассчитана, ну хотите так хотите), и знаете, что это массив, а вопрос задаете так словно вы не знаете всего этого и потому завели речь об индексах.
В чем проблема то, трудности обращения к известному или в том, что вы уничтожаете нечто в сессии?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования