У меня есть файл разделенных запятой значений, скажем примерно так:
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. Просто измените свой массив, например
$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--;
}
Я бы выбрал первый способ, так как у вас намного меньше переменных, и он намного чище.
Если я правильно вас понимаю, вы хотите, чтобы во время цикла while перейти от последней ячейки массива к первому. Поэтому для этого вы можете пойти:
$n = (count($line) - 1);
while ($line[$n]!="") {
lots of magic stuff that works
$n=$n-1;
}