|
|
|
| Есть многомерный ассоциативный массив, как, зная индекс получить ветку?
<?php
$test = array(
'q' => 'foo',
'w' => array(
'phone' => array ('555555', '444444')
),
'e' => 'bar'
);
?>
|
Вот из этого массива надо получить массив с индексом phone | |
|
|
|
|
|
|
|
для: mihdan
(25.02.2013 в 16:18)
| | А phone разве индекс массива?
<?
array_walk($test, function($v, $k) use(&$test) {
if(is_array($v)) $test = current($v);
});
|
| |
|
|
|
|
|
|
|
для: confirm
(25.02.2013 в 17:20)
| | >А phone разве индекс массива
Индекс массива второго уровня. Или я не прав?
Как быть, если глубина вложенности будет еще больше? | |
|
|
|
|
|
|
|
для: mihdan
(25.02.2013 в 17:31)
| | Это ключ, а не индекс.
А если было бы решение на любую глубину, то все равно бы новые условия появились?
Если глубина может быть произвольной, да еще и не одно значение являющееся массивом, значит проверяйте вложение до конца.
Может быть лучше подумать о выгодной структуре массива, а не городить потом нечто невообразимое? | |
|
|
|
|
|
|
|
для: confirm
(25.02.2013 в 17:56)
| | В форме поля имеют имена
company[phone][] - телефонов бывает несколько
company[name] - имя компании
В скрипте они попадают в сессию с одноименными названиями.
После обработки массив SESSION['company'] уничтожается.
Как тогда их проще обработать?
Раньше, когда не было массивов, данные из POST, GET получались при помощи самописной функции getParam('ключ массива REQUEST', 'значение по умолчанию', 'тип данных, например int').
Она по переданному ключу брала из массива REQUEST данные проверяла их на соответствие заданному типу и возвращала результат.
Теперь хочется проще сделать, но нет мыслей | |
|
|
|
|
|
|
|
для: mihdan
(27.02.2013 в 02:51)
| | Интересно, вы знаете гарантированно, что форма содержит ключ phone (не понятно зачем прятать еще и в ключ company, словно эта форма еще и на служебных собак этой компании рассчитана, ну хотите так хотите), и знаете, что это массив, а вопрос задаете так словно вы не знаете всего этого и потому завели речь об индексах.
В чем проблема то, трудности обращения к известному или в том, что вы уничтожаете нечто в сессии? | |
|
|
|