Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Закрытая темаСоздание новой темыСоздание опроса

> Вывод на экран многомерного массива, Вывод отдельного элемента
Юрий Шу  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 131
Пользователь №: 16484
На форуме: 8 лет, 9 месяцев, 23 дня
Карма:




Здравствуйте.
Есть массив $result
HTML
Array
(
[ELEMENT_PROPERTIES] => Array
(
[22] => Array
(
[0] => Array
(
[VALUE] => Спринтер
)

)

)
)

Как вывести на экран значение «Спринтер»?



Спустя 16 минут, 40 секунд (3.04.2009 - 15:16) sergeiss написал(а):
Индекс массива должен быть [ELEMENT_PROPERTIES][22][0][VALUE].

Спустя 6 минут, 54 секунды (3.04.2009 - 15:23) Юрий Шу написал(а):
Цитата (sergeiss @ 3.04.2009 - 12:16)
Индекс массива должен быть [ELEMENT_PROPERTIES][22][0][VALUE].

То бишь так?
PHP
echo $result[ELEMENT_PROPERTIES][22][0][VALUE];


У меня ничего не выводит blink.gif

Спустя 5 минут, 19 секунд (3.04.2009 - 15:28) sergeiss написал(а):
А так если?

PHP
echo $result['ELEMENT_PROPERTIES'][22][0]['VALUE'];


Спустя 5 минут, 3 секунды (3.04.2009 - 15:33) Юрий Шу написал(а):
sergeiss, и так ничего не выводит sad.gif

Спустя 11 минут, 27 секунд (3.04.2009 - 15:45) sergeiss написал(а):
Тогда тебе надо сделать простой цикл перебора элементов массива. И добраться до самой-самой глубокой вложенности. При этом ты можешь выводить все элементы, встреченные по ходу дела, либо пропускать все, кроме нужных (как сделано в моем примере).
Типа такого:
PHP
// где-то до этого момент $result уже определен 
if( is_array$result ) ): // MAIN
  
echo 'result is array<br>';
  foreach( 
$result as $key1 => $val1 ): // LOOP1
    
if( $key1 <> 'ELEMENT_PROPERTIES' ) continue;
    if( 
is_array$val1 ) ): // VAL1
      
echo "result[$key1] is array<br>";
      foreach( 
$val1 as $key2 => $val2 ): // LOOP2
      // здесь опять проверяем, явлется ли $val2 массивом, и если да, то тогда проходим по нему, ищем ключ 22
      // и так далее, глубже и глубже :)
      
endforeach; // LOOP2
    
endif; // VAL1
  
endforeach; // LOOP1
endif; // MAIN

Спустя 6 минут, 33 секунды (3.04.2009 - 15:51) Юрий Шу написал(а):
sergeiss, спасибо, сейчас посмотрю.

Спустя 1 год, 7 месяцев, 28 дней, 4 часа, 12 минут, 38 секунд (1.12.2010 - 21:04) freed-master написал(а):
А это вообще нормально, использовать цикл в цикле?

foreach ($array as $a => $b)
{
echo $a.'<br />';
foreach ($b as $c => $d)
{
echo $b.'<br />';
foreach ($c as $d => $e)
{
echo $e.'<br />';
}
}
}

так хорошо или может есть другие способы перебора???

Спустя 1 час, 24 минуты, 7 секунд (1.12.2010 - 22:28) kirik написал(а):
Цитата (freed-master @ 1.12.2010 - 13:04)
А это вообще нормально, использовать цикл в цикле?

Почему нет? Единственное что не очень красиво, да и ограниченное число вложенностей.

Цитата (freed-master @ 1.12.2010 - 13:04)
так хорошо или может есть другие способы перебора???

Рекурсия smile.gif

Спустя 1 год, 6 месяцев, 5 дней, 18 часов, 38 минут, 52 секунды (7.06.2012 - 16:07) jazz2000 написал(а):
Юрий Шу Может Вы не правильно ввели данные в массив? У меня такой код работает и выдает, что надо:
$a = Array(
"ELEMENT_PROPERTIES" => Array
(
22 => Array
(
0 => Array
(
"VALUE" => "Спринтер"
)

)
)
);


echo $a[ELEMENT_PROPERTIES][22][0][VALUE]; //Выдает "Спринтер"
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Закрытая темаСоздание новой темыСоздание опроса