Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Мнооооогомерный массив в одномерный.
Форумы портала PHP.SU » » Вопросы новичков » Мнооооогомерный массив в одномерный.

Страниц (1): [1]
 

1. ytrewq123 - 28 Мая, 2016 - 15:14:04 - перейти к сообщению
Здравствуйте!
У меня такое дело.
Хотел сам многооомерный массив в одномерный перегнать.
Но. Вроде дошёл до глубины. Но выйти не может. Не подскажите что не так.
Знаю что куча примеров есть как. Но если кому не трудно гляньте мой что не так.

PHP:
скопировать код в буфер обмена
  1. $massiv = array(
  2.  
  3.         array(
  4.  
  5.             "title" => "Rear Window",
  6.  
  7.             "director" => "Alfred Hitchcock",
  8.  
  9.             "year" => 1954
  10.  
  11.             ),
  12.            'Этот псевдокласс выделяет только элементы',
  13.  
  14.         array(
  15.  
  16.             "title" => "Full Metal Jacket",
  17.  
  18.             "director" => "Stanley Kubrick",
  19.             ['11111111','2222222',['aaaaaaaaaaaaa',['DA',' Ili','NET'],'qqqqqqqqq'],'3333333333333'],
  20.             "year" => 1987
  21.  
  22.             ),
  23.  
  24.         array(
  25.  
  26.             "title" => "Mean Streets",
  27.  
  28.             "director" => "Martin Scorsese",
  29.  
  30.             "year" => 1973
  31.  
  32.             ),
  33.             'Elemnt massiva'
  34.  
  35. );
  36.  
  37.  
  38. function fun($massiv)
  39. {
  40.       foreach($massiv as $stroka)
  41.         {
  42.          
  43.                 if(is_array($stroka))
  44.                     {
  45.                        
  46.                                 foreach($stroka as $stroka1)
  47.                                 {
  48.                                    
  49.                                             if(is_array($stroka1))
  50.                                             {
  51.                                              
  52.                                              
  53.                                              $vyvod1[] = $stroka1;
  54.                                              
  55.                                               return fun($vyvod1);
  56.                                                
  57.                                             }
  58.                                            else
  59.                                            {
  60.                                                  $vyvod1[] = $stroka1;
  61.                                                  
  62.                                        
  63.                                            }
  64.                                      
  65.                                
  66.                                 }continue;
  67.                    
  68.                              
  69.                     }
  70.          
  71.         $vyvod1[] = $stroka;
  72.         }
  73.  
  74.      return $vyvod1;
  75. }
  76. print_r(fun($massiv));
  77.  
  78.  
  79.  



Результат получается во таким недокрут.
Вроде ясно почему. Потому как после рекурсии берёт последний массив и потом выходит из форыча считая, что всё.
Array
(
[0] => Rear Window
[1] => Alfred Hitchcock
[2] => 1954
[3] => Этот псевдокласс выделяет только элементы
[4] => Full Metal Jacket
[5] => Stanley Kubrick
[6] => 11111111
[7] => 2222222
[8] => aaaaaaaaaaaaa
[9] => DA
[10] => Ili
[11] => NET
)

А надо бы такой.
Array
(
[0] => Этот псевдокласс выделяет только элементы
[1] => Full Metal Jacket
[2] => Stanley Kubrick
[3] => 11111111
[4] => 2222222
[5] => aaaaaaaaaaaaa
[6] => DA
[7] => Ili
[8] => NET
[9] => qqqqqqqqq
[10] => 3333333333333
[11] => 1987
[12] => Mean Streets
[13] => Martin Scorsese
[14] => 1973
[15] => Elemnt massiva
)



Если не трудно кому, гляньте пожалуйста.
2. br - 30 Мая, 2016 - 11:12:33 - перейти к сообщению

 

Powered by ExBB FM 1.0 RC1