За последние 24 часа нас посетили 17238 программистов и 1598 роботов. Сейчас ищут 1036 программистов ...

переход к следущему элементу многомерного массива

Тема в разделе "PHP для новичков", создана пользователем sound, 19 окт 2007.

  1. sound

    sound Guest

    пишу
    $r=next($array);

    выдает ошибку

    примеров использования функции next с многомерным массивом ненашел
     
  2. DarkElf

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

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    структуру массива покажи.

    вообще, если массив вида

    PHP:
    1. <?php
    2. $array[0][0]
    3. $array[0][1]
    4. $array[0][2]
    5. $array[0][2]
    6. $array[0][4]
    7. $array[0][0]
    8. $array[1][1]
    9. $array[1][2]
    10. $array[1][2]
    11. $array[1][4]
    12. ?>
    и его ключи первого уровня могут идти не по порядку, то:

    если ключи 1 уровня можно изменять, то:

    PHP:
    1. <?php
    2. sort($array);
    3. $cnt = count($array);
    4. for($i=0;$i<$cnt;$i++){
    5.     echo "Значение ключа 2 массива для записи $i равно {$array[$i][2]}<br>";
    6. }
    7. ?>
    если ключи нельзя менять, то:

    PHP:
    1. <?php
    2. foreach($array as $i=>$v){
    3.     echo "Значение ключа 2 массива для записи $i равно {$v[2]}<br>";
    4. }
    5. ?>

    P.S. из личных наблюдений, чем больше элементов в массиве, тем больше for обыгрывает foreach по времени исполнения. если элементов около 100, то разница исключительно в погрешности измерения, если меньше - затраты на функции count и sort не оправдаются..
     
  3. Mavir

    Mavir Guest

    Наверное, я криворукий, что-то делаю не так
    PHP:
    1. <?
    2. $array = array(
    3. array(1,2,3),
    4. array(4,5,6),
    5. array(7,8,9),
    6. );
    7.  
    8. $r=next($array);
    9. print_r($r);
    10.  
    11. $r=next($array);
    12. print_r($r);
    13.  
    14. ?>
    Нет ошибок
     
  4. DarkElf

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

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    Mavir

    может его массив просто пустые значение или 0 содержал и т.п.
     
  5. Mavir

    Mavir Guest

  6. Mavir

    Mavir Guest

    Пока только в голову приходит , что у sound $array не массив. Пусть покажет
    Код (Text):
    1. print_r($array)
     
  7. sound

    sound Guest

    Mavir
    DarkElf
    ага разобрался не массив
    $array был в цикле foreach как значение элемента массива