Как я могу перебрать мой массив в обратном порядке? [Дубликат]

1

У меня есть файл разделенных запятой значений, скажем примерно так:

1;data
2;data
3;data
...
Z;data

Количество строк Z может меняться в каждом файле. Идея состоит в том, чтобы проанализировать данные и поместить их в базу данных. Поэтому я делаю следующее:

$contents = file_get_contents($filename);
$line = explode(chr(13),$contents);

И теперь я иду по строкам следующим образом, и все в порядке:

$n = 0;
while ($line[$n] != "") {
    //lots of magic stuff that works
    $n = $n + 1;
}

Теперь по причинам, которые не нужно объяснять, мне нужно сначала разобрать строку Z, а затем перейти к 1 вместо. Как я должен просто делать это?

  • 1
    Просто переверните массив перед циклом
  • 0
    Вы говорите , что не нужно объяснять, но я спрошу иначе: зачем вам нужно читать строки в обратном порядке ?
Показать ещё 6 комментариев
Теги:
arrays

2 ответа

5
Лучший ответ

Вы можете сделать это двумя способами:

1. Просто измените свой массив, например

$array = array_reverse($array);

И затем вы можете выполнить цикл:

foreach($array as $v) {
    //Your magic stuff with $v
}

2. Подсчитайте элементы массива

Сначала подсчитайте элементы массива, а затем прокрутите до индекса 0.

$count = count($array)-1;

while($count >= 0) {
    //Your magic stuff with $array[$count]
    $count--;
}

Я бы выбрал первый способ, так как у вас намного меньше переменных, и он намного чище.

0

Если я правильно вас понимаю, вы хотите, чтобы во время цикла while перейти от последней ячейки массива к первому. Поэтому для этого вы можете пойти:

$n = (count($line) - 1);

while ($line[$n]!="") {
 lots of magic stuff that works
$n=$n-1;
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню