PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Описание: Не выводит значение "первого" ключа
Поиск в теме | Версия для печати
K0LbAzzeR
Отправлено: 02 Февраля, 2016 - 06:34:35
Новичок
Покинул форум
Сообщений всего: 5
Дата рег-ции: Февр. 2016
Помог: 0 раз(а)
Не выводит значение "первого" ключа, что не так?
PHP:
скопировать код в буфер обмена
"key0" => "A" ,
"key1" => "B" ,
"key2" => "C" ,
"key3" => "D" ,
) ;
echo '<hr>' ;
foreach ( $as1 as $sValueArray ) {
echo ( key ( $as1 ) . ' = ' . $sValueArray . '<br>' ) ; }
echo '<hr>' ;
Выводит:
key1 = A
key2 = B
key3 = C
= D
А нужно:
key0 = A
key1 = B
key2 = C
key3 = D
K0LbAzzeR
Отправлено: 02 Февраля, 2016 - 09:01:00
Новичок
Покинул форум
Сообщений всего: 5
Дата рег-ции: Февр. 2016
Помог: 0 раз(а)
Разобрался, может кому и пригодиться:
PHP:
скопировать код в буфер обмена
"key0" => "A" ,
"key1" => "B" ,
"key2" => "C" ,
"key3" => "D" ,
) ;
echo '<hr>' ;
foreach ( $as1 as $sKeyArray => $sValueArray ) {
echo ( $sKeyArray . ' = ' . $sValueArray . '<br>' ) ;
}
echo '<hr>' ;
(Добавление)
Дальше - больше )))
Теперь дано:
Вывод вложенного массива:
Пытаюсь "зациклить" все это, что бы выводились массивы "постепенно" (но не работает):
PHP:
скопировать код в буфер обмена
foreach ( $as1 as $sKeyArray => $sValueArray ) {
if ( $sValueArray == 'Array' ) {
foreach ( $as1 [ 'KEY0' ] as $sKeyArray => $sValueArray ) {
echo ( '---<br>' ) ;
echo ( $sKeyArray . ' = ' . $sValueArray . '<br>' ) ;
} ;
} else {
echo ( $sKeyArray . ' = ' . $sValueArray . '<br>' ) ;
}
} ;
Что нужно подправить что бы получить такое:
KEY0 = Array
---
key0 = a
key1 = b
---
KEY1 = B
Andrew_quest
Отправлено: 02 Февраля, 2016 - 15:47:50
Новичок
Покинул форум
Сообщений всего: 5
Дата рег-ции: Февр. 2016
Помог: 0 раз(а)
(Добавление)
PHP:
скопировать код в буфер обмена
здесь много ненужных скобок и т. д. посмотрите внимательно
foreach ( $as1 as $sKeyArray => $sValueArray ) {
if ( $sValueArray == 'Array' ) { <<<< что вы здесь пытаетесь найти ??? увас такого значения в массиве нет...
echo ( '---<br>' ) ;
echo ( $sKeyArray . ' = ' . $sValueArray . '<br>' ) ;
} ;
} else {
echo ( $sKeyArray . ' = ' . $sValueArray . '<br>' ) ;
}
} ;
(Добавление)
http://www.php.su/learnphp/datatypes/?array почитайте внимательно про создание массива и его вывод
(Отредактировано автором: 02 Февраля, 2016 - 16:30:18)
Andrew_quest
Отправлено: 02 Февраля, 2016 - 17:48:08
Новичок
Покинул форум
Сообщений всего: 5
Дата рег-ции: Февр. 2016
Помог: 0 раз(а)
PHP:
скопировать код в буфер обмена
<?PHP
"key0" => "a" ,
"key1" => "b" ,
) ,
"KEY1" => "B" ,
) ;
foreach ( $asa1 as $key => $value ) {
foreach ( $asa1 [ $key ] as $key2 => $value2 ) {
echo "$key => $key2 => $value2 " . "<br>" ;
}
}
echo "$key => $value " ;
?>
(Отредактировано автором: 02 Февраля, 2016 - 17:48:43)
K0LbAzzeR
Отправлено: 03 Февраля, 2016 - 04:02:46
Новичок
Покинул форум
Сообщений всего: 5
Дата рег-ции: Февр. 2016
Помог: 0 раз(а)
Andrew_quest пишет: PHP:
скопировать код в буфер обмена
<?PHP
"key0" => "a" ,
"key1" => "b" ,
) ,
"KEY1" => "B" ,
) ;
foreach ( $asa1 as $key => $value ) {
foreach ( $asa1 [ $key ] as $key2 => $value2 ) {
echo "$key => $key2 => $value2 " . "<br>" ;
}
}
echo "$key => $value " ;
?>
Это решение "узконаправленное" т.к. не была описана задача полностью.
Задача состоит в следующем разложить ассоциативный многомерный массив на составляющие (пара "значение ключа" = "значение переменной в массиве, по этому ключу"). Конкретные данные в массиве не известны, степень вложения массива тоже не известна.
На данном этапе решил как работать "стандартно" (для любых входящих массивов) с глубиной вложения 2, думаю что нужно в будущем организовать все это дело через пользовательские функции.
Вот что на данный момент у меня есть:
PHP:
скопировать код в буфер обмена
"key0.0" => "a" ,
"key0.1" => "b" ,
) ,
"KEY1" => "B" ,
"key2.0" => "1" ,
"key2.1" => "2" ,
) ,
) ;
echo '<hr>' ;
foreach ( $as1 as $sKeyArray => $sValueArray ) {
echo ( $sKeyArray . ' = ' . $sValueArray . '<br>' ) ;
foreach ( $as1 [ $sKeyArray ] as $sKeyArray => $sValueArray ) {
echo ( $sKeyArray . ' = ' . $sValueArray . '<br>' ) ;
} ;
} else {
echo ( $sKeyArray . ' = ' . $sValueArray . '<br>' ) ;
}
} ;
(Отредактировано автором: 03 Февраля, 2016 - 10:04:56)
K0LbAzzeR
Отправлено: 03 Февраля, 2016 - 09:28:21
Новичок
Покинул форум
Сообщений всего: 5
Дата рег-ции: Февр. 2016
Помог: 0 раз(а)
Решил задачу с глубиной вложения 3:
PHP:
скопировать код в буфер обмена
"KEY0" => "A" ,
"key1.0" => "aa" ,
"key1.1" => "bb" ,
"KeY1.0.0" => "AAA" ,
"KeY1.0.1" => "BBB" ,
) ,
"key1.3" => "dd" ,
) ,
"KEY2" => "C" ,
"key3.0" => "11" ,
"key3.1" => "22" ,
"KeY3.2.0" => "ABA" ,
"KeY3.2.1" => "BAB" ,
) ,
) ,
"KEY4" => "E" ,
) ;
foreach ( $as1 as $sKeyArray1 => $sValueArray1 ) {
if ( is_array ( $sValueArray1 ) ) { // "элемент массива" = "массив элементов" echo ( $sKeyArray1 . ' = ' . $sValueArray1 . '<br>' ) ;
foreach ( $as1 [ $sKeyArray1 ] as $sKeyArray2 => $sValueArray2 ) {
if ( is_array ( $sValueArray2 ) ) { // "элемент массива" = "массив элементов" echo ( $sKeyArray2 . ' = ' . $sValueArray2 . '<br>' ) ;
foreach ( $as1 [ $sKeyArray1 ] [ $sKeyArray2 ] as $sKeyArray3 => $sValueArray3 ) {
echo ( $sKeyArray3 . ' = ' . $sValueArray3 . '<br>' ) ;
} ;
}
else {
echo ( $sKeyArray2 . ' = ' . $sValueArray2 . '<br>' ) ;
} ;
} ;
}
else {
echo ( $sKeyArray1 . ' = ' . $sValueArray1 . '<br>' ) ;
}
} ;
Вопрос такой характера, можно ли как то сократить такую запись:
А то если глубина вложений будет например равна семи, то строка получиться такая (не совсем удобно "работать" с такой):
PHP:
скопировать код в буфер обмена
foreach ( $as1 [ $sKeyArray1 ] [ $sKeyArray2 ] [ $sKeyArray3 ] [ $sKeyArra4 ] [ $sKeyArray5 ] [ $sKeyArray6 ] [ $sKeyArray7 ] as $sKeyArray7 => $sValueArray7 ) {
}
Поиск в теме | Версия для печати
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB