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

Форум PHP

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

 

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

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

тема: Вывод <br> для нужного элемента в 2-мерном массиве
 
 автор: kilogram   (01.05.2012 в 18:55)   письмо автору
 
 


<?php
$trans 
= array(
    
"name1" => array("Мама","Папа","Дядя",),
    
"head" => "Адольф Гитлер"
    
"number" => 105,
    
"man" => "clown",
    
"marshal" => 'Andrey',
    
"name2"=> array("Вася","Петя","Коля")
);
 
foreach(
$trans as $p){
    if(
is_array($p))
    foreach(
$p as $t)
        echo 
$t.' '

elseif(!
is_array($p))
echo 
' <br /><b>'.$p.'</b> ';
elseif(
count($t)-1)
echo 
'<br /><br /><br />';
}    
?>


Результат:

Мама Папа Дядя 
Адольф Гитлер 
105 
clown 
Andrey Вася Петя Коля


Мне нужно вывести так:

Мама Папа Дядя 
Адольф Гитлер 
105 
clown 
Andrey 
Вася Петя Коля


Не выходит что-то.

  Ответить  
 
 автор: confirm   (01.05.2012 в 19:40)   письмо автору
 
   для: kilogram   (01.05.2012 в 18:55)
 

Если проверка это if(is_array($p)), значит обратное что будет? Зачем же еще писать elseif(!is_array($p))? А elseif(count($t)-1) и комментировать не охота. И вообще, кроме for, foreach, etc... в РНР существуют и другие функции.
<?
foreach($trans as $p) echo is_array($p) ? implode(' ',$p).'<br>' '<b>'.$p.'</b><br>';

  Ответить  
 
 автор: kilogram   (01.05.2012 в 21:01)   письмо автору
 
   для: confirm   (01.05.2012 в 19:40)
 


<?php
$trans 
= array(
    
"name1" => array("Мама","Папа","Дядя",),
    
"head" => "Адольф Гитлер"
    
"number" => 105,
    
"man" => "clown",
    
"marshal" => 'Andrey',
    
"name2"=> array("Вася","Петя","Коля")
);

echo 
'<pre>' print_r($trans1) . '</pre>'

foreach(
$trans as $key=>$value){
   if(
is_array($value))
         foreach(
$value as $e1)
           echo 
$e1.' ';
   elseif(
$key == 'marshal')
        echo 
' '.$key.'<br />';
    elseif(
$key == 'head')
    echo 
'<br /> '.$key.'<br />'
     else echo 
$key.'<br /> ';

}    

?>



Результат:

Мама Папа Дядя 
head
number
man
marshal
Вася Петя Коля

Скажите, а как в таком коде добавить чтобы вывело ещё название ключей name1 и name2?

  Ответить  
 
 автор: confirm   (01.05.2012 в 22:02)   письмо автору
 
   для: kilogram   (01.05.2012 в 21:01)
 

<?
foreach($trans as $key=>$value){ 
   echo 
$key .'<br />';
   if(
is_array($value)) {
      foreach(
$value as $e1) echo $e1.' ';
      echo 
'<br />';
   }    
}

А для чего этот код, для тренировки усвоения foreach() или же выяснить каков предел вложения elseif?
И удалите ненужную запятую после "Дядя".

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

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