За последние 24 часа нас посетил 18661 программист и 1599 роботов. Сейчас ищут 984 программиста ...

Перебор двухмерного массива.

Тема в разделе "PHP для новичков", создана пользователем linkoln89, 23 дек 2010.

  1. linkoln89

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

    С нами с:
    10 дек 2010
    Сообщения:
    5
    Симпатии:
    0
    После поиска в БД получается двухмерный массив, в БД за место кавычек стоят символы &, я хочу сделать универсальную модель (CRUD) и в функцию чтения хочу вставить код, который перебрал бы весь массив результата и заменил обратно & на " пришел к этому:

    PHP:
    1.  
    2.                 //i - результат поиска по БД
    3.                 reset ($i);
    4.                 $n = count($i);
    5.                 $e = 0;
    6.                
    7.                 //перебор 1ого уровня массива
    8.                 while ($n > $e) {
    9.                        
    10.                         //перебор 2ого уровня массива
    11.                         $d = 0;
    12.                         $z = count ($i[$e]);
    13.                         while ($z > $d) {
    14.  
    15.                             strtr(current($i[$e]), '&', '"');
    16.                             next ($i[$e]);
    17.                             $d++;
    18.                              
    19.                         };
    20.                    
    21.                     $e++;
    22.                    
    23.                 };
    24.  
    25.                 //итог
    26.                 return ($i);
    27.  
    Как вы могли догадаться, 1 уровень - целые числовые индексы, идущие последовательно, 2 - строковые индексы. В результате возвращается обратно массив без изменений. Вопрос: в чем именно ошибка? Мб имеется другой способ перебора и замены знаков? В любом случаем, интересно будет услышать ваши предложения, Заранее спасибо

    П.С.: модель должна быть универсальной, на все случае жизни.
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    PHP:
    1. <?php
    2. foreach ($arr as $subArr) {
    3.      foreach ($subArr as $val) {
    4.           echo $val;
    5.      }
    6.      echo '<br>';
    7. }
    перестаем думать измерениями, и понимаем что это всего-лишь вложенные массивы.
     
  3. linkoln89

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

    С нами с:
    10 дек 2010
    Сообщения:
    5
    Симпатии:
    0
    [vs]
    Не помогло, все равно символы не заменились, код выглядит так:


    PHP:
    1.  
    2.             if (!empty ($i)) {
    3.                 foreach ($i as $h) {
    4.                     foreach ($h as $k) {
    5.                         $k = strtr($k, '&', '"');
    6.                     }
    7.                 }
    8.             return ($i);
    9.  
     
  4. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    А тебе никто тут код замены писать не обязан. Тебе дали пример перебора массива в рассчете на то, что у тебя в голове всё-таки не куча говна, а что-то более полезное и ты САМ сможешь дописать под свои требования.
    Но не поняв кода, писать, что что-то не работает - это предел.
     
  5. linkoln89

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

    С нами с:
    10 дек 2010
    Сообщения:
    5
    Симпатии:
    0
    Не лечи мои уши, яблоко раздора, не можешь нормально вести диалог нечего дергаться, не стоит свои проблемы сексуальной жизни выносить и разносить по ушам. Лучше бы ответил в чем может быть проблема, а не вел себя как дурак
     
  6. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Кто о чем, а вшивый о бане.
    Сочувствую.