За последние 24 часа нас посетили 30465 программистов и 1806 роботов. Сейчас ищут 813 программистов ...

Массивы База, MySql to Array или как их понять

Тема в разделе "PHP для новичков", создана пользователем Conus, 16 мар 2017.

  1. Conus

    Conus Активный пользователь

    С нами с:
    21 окт 2015
    Сообщения:
    92
    Симпатии:
    0
    Вопрос для профи, если такие есть
    нужен универсальный обработчик массива на своей интерпретации
    без for-a echa и т д
    чтобы читал все массивы какие есть вложенные перечислимые и т д
    вот представил код

    сам массив
    Код (Text):
    1. $mo['ok'] = array(0=>'oden', 1=>'dvwa', 'trah'=>'ah', 'bah'=>'mah',
    2.                   'nah'=>array('arr'=>'array ry'), 'raz'=>'dva', 'uu', 'uuu', 'raze'=>'raz');
    3. $mo['dok'] = array(0=>'oden', 1=>'dvwa', 'trah'=>'ah', 'bah'=>'mah', 'raz'=>'dva', 'uu', 'uuu', 'raze'=>'raz');

    Код (Text):
    1.  
    2. function to($var)
    3. {          
    4.     is_array($var[array_keys($var)[0]] )
    5.         ? $view .=  array_keys($var)[0]  .  '  / ' .to($var[array_keys($var)[0]] )  
    6.         : $view .=  array_keys($var)[0] .' - ' .$var[array_keys($var)[0]] .  ' | ' ;
    7.     if(array_keys($var)[1]) { $view .= ' <br> ' .to(array_slice($var, 1, count($var)) ); }
    8.     else
    9.     {  
    10.         if($var[array_keys($var)[1] ])
    11.         { $view .= array_keys($var)[1] .' - ' .$var[ array_keys($var)[1] ] .' | ' . to(array_slice($var, 2, count($var)));
    12.         }    
    13.     }
    14.     return $view;
    15. }
    Но базу он не читает !
    Как сделать чтобы и базу читал и массив да еще и без foreach - а?

    вот ниже тоже делает и базу читает только foreach
    Код (Text):
    1.  
    2. function foo($var)
    3. {  
    4.     if(is_string($var)) { return $var; }
    5.     else      
    6.     {  foreach($var as $k=>$value)                  
    7.        {  if(!is_array($value)) { $view .=  $k .' '. $value .'<br>'; }
    8.           else
    9.           {  foreach(array_values($value) as $key=>$val)          
    10.              {
    11.                 if(is_array($val)) { $view .= foo($val); }
    12.                 else { $view .= array_keys($value)[$key] . ' '.$val.' | '; }
    13.              }
    14.           }
    15.        }
    16.     }  
    17.     return $view;
    18. }
     
  2. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    [​IMG]
     
    ZlobnyKolob, artoodetoo и Fell-x27 нравится это.
  3. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Автор, что должно быть на входе, что на выходе, и в чем причина foreach-боязни?
     
  4. Conus

    Conus Активный пользователь

    С нами с:
    21 окт 2015
    Сообщения:
    92
    Симпатии:
    0
    Дело не в боязни а в сравнении, функция вызываемая из самой себя это определённо массив
    а на выходе имеется гибкость программного кода и универсальность
     
  5. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Функция, вызываемая из самой себя это определенно рекурсия.
    И снова. В чем причина желания отказа от foreach? Как это связано с гибкостью и универсальностью? Куда уж гибче и универсальнее-то? Ему даже на индексы плевать.
     
  6. Conus

    Conus Активный пользователь

    С нами с:
    21 окт 2015
    Сообщения:
    92
    Симпатии:
    0
    Что такое рекурсия?, машина считает, определение действие единица логической системы = функция
    Код (Text):
    1.   2*Function(){}=function(){}[1]
     
  7. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Фел, ты видимо недостаточно профи :)
    Человеку определённо нужна помощь и не твоя.
     
  8. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
     
  9. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Посмотри https://secure.php.net/manual/ru/class.recursivearrayiterator.php и в комментариях есть примеры использования
     
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Ох ёб...

    Окей. Я упорный. Я снова спрошу.
    --- Добавлено ---
    И да:
    Тернарные операторы ТАК не используют. Тернарный оператор используется для построения выражения, возвращающего результат, это не "краткая форма if". Такой код - это индусская жесть. При том, что потом используется if все равно.

    И да, так нифига и не понятно, что вы хотите и зачем. Что на входе, что на выходе? Простой вопрос же.
     
  11. Conus

    Conus Активный пользователь

    С нами с:
    21 окт 2015
    Сообщения:
    92
    Симпатии:
    0
    Вот вот - на входе эра Unix на выходе эра Windows ...

    И вот еще - вам напоминает 2*Function(){}=function(8){}[0] что нибудь кроме индуса?
    мне лично нет...
     
  12. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Автор. Ответь, пожалуйста, на поставленные вопросы. Не надо полемику, не надо демагогию. Просто ответь на вопросы.
     
  13. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    @Fell-x27, он видимо курить что-то тяжелое, ты не дождешься от него внятного ответа. Я давно заметил, он говорит загадками. Особенно запомнился момент когда он хотел всех очистить от демонов, или от чего то еще сверхъестественного.
     
  14. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Если человек не хочет, чтобы ему помогли и всячески мешает это делать, на кой черт просить помощь? Эхехе. Окей, умываю руки.