Как правильно организовать построчную запись в файл?

IgorYN

Новичок
Как правильно организовать построчную запись в файл?

Не нашёл информации...
Суть проблемы:
Есть некий массив значений $array
Пишем его построчно в файл
for ($i=0; $i<=count($array); $i++)
{
fwrite ($hdrr, $array[$i]."\n");
}
Пустых элементов в массиве нет.
Всё записывается успешно.
Но последняя строка в файле - пустая.
Я так полагаю это из-за \n ...
Отсюда вопрос: как избавится от этой пустой строки???
 

IgorYN

Новичок
Автор оригинала: Wicked
не ставить переход строки после последней записи
Тогда весь массив будет одной строкой

-~{}~ 24.10.06 14:32:

Автор оригинала: Андрейка
может надо не писать \n в последней строке?
Тогда весь массив будет одной строкой

-~{}~ 24.10.06 14:33:

Запутался :) А как это реализовать "не ставить переход строки после последней записи"
 

IgorYN

Новичок
нет. разовью вопрос. есть некая выборка:
for ($i=0; $i<=count($array); $i++)
{
if ($array[$i] != "какое-то значение") {fwrite ($hdrr, $array[$i]."\n"); }
}
 

Андрейка

Senior pomidor developer
IgorYN
давай "if ($array[$i] != "какое-то значение") { }" убираем временно, ты развиваешь чтение указанной ссылки и организуешь в этом коде (без if который), чтобы не записывало \n и постишь его сюды
 

IgorYN

Новичок
Записываются в файл значеня от 1 до 10
С "\n"
1
2
3
4
5
6
7
8
9
10
пустая строка

Без "\n"
12345678910
 

Андрейка

Senior pomidor developer
IgorYN
в лес результат.. от тебя код, не записывающий последнюю строку, написанный на основе изучения тобою if и прочих радостей жизни, описанных по ссылке выше
 

IgorYN

Новичок
for ($i=0; $i<=(count($array)-1); $i++)
{
fwrite ($hdrr, $array[$i]."\n");
}
fwrite ($hdrr, $array[count($array)])

Можно сделать что-то на подобии...
Но условие if ($array[$i] != "какое-то значение") важно
 

Андрейка

Senior pomidor developer
IgorYN
молодца.. правда с индексами и размером массива немного нехило намутил
теперь нада последний fwrite внести в цикл, но так, чтобы он выполнялся только на последней итерации цикла, а первый fwrite во всех остальных случаях ) hint : use if
 

IgorYN

Новичок
Tor, этот имеет смысл если мне нужны все значения в массиве.
Но если есть выборка if ($array[$i] != "какое-то значение") то
не подходит так как $array[count($array)] показывает последнее значение всего массива, а не выбранных элементов => от пустой строки в конце не избавляет.
К тому же может случиться так что $array[count($array)] как раз "не нужное значение"

-~{}~ 24.10.06 15:05:

Андрейка, подскажи кодом как :)
 

dantistus

Новичок
$count=count($array);
for ($i=0; $i<$count; $i++) {
if(какое-то условие){
if($i)
fwrite($hdrr,"\n")
fwrite ($hdrr, $array[$i]."\n");
}
}

1. Надо писать не $i<=count($array), а $i<count($array). $array[count($array)] - неустановленная переменная.
2. Первую строку, которая подходит под условие, ты записываешь просто, а все последующие предваряешь "\n".

Надеюсь, ты этого хотел добиться :)
 

IgorYN

Новичок
dantistus Данный код не производит выборку, просто переписывает файл как есть :(
 

dantistus

Новичок
if(какоето условие)


Не может не производить выборку. Покажи, что ты написал?
 

IgorYN

Новичок
$count=count($array);
for ($i=0; $i<$count; $i++) {
if($array[$i] != 0){
if($i)
fwrite($hdrr,"\n");
fwrite ($hdrr, $array[$i]."\n");
}
}

как пример: удаляем пустые строки
 

dantistus

Новичок
Ну ты сам понимаешь, что оно не может не идти, если все сделать правильно? давай так:

1. Напиши содержимое массива (не больше 10 элементов)
2. Напиши условие, которое не может не выполняться.
3. Выполни скрипт с такими данными и условием и посмотри, что записалось в файл.

Все это - в студию, например вот так:

$array=array('Ya','bolshe','nikogda','ne','budu','govorit','gluposti');
$count=count($array);
for ($i=0; $i<$count; $i++) {
if($array[$i] != 'govorit'){
if($i)
fwrite($hdrr,"\n");
fwrite ($hdrr, $array[$i]."\n");
}
}

//Ну и тут то, что в файле оказалось
 
Сверху