X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Работа с масивами.. Вывод списка из файла
Banderas
Banderas
Topic Starter сообщение 28.2.2009, 12:50; Ответить: Banderas
Сообщение #1


Начал учить масивы, и вот в книге написан код:
[php]<?

$f = fopen("file.txt", "rt") or die ("ERROR");

while (!feof($f))
{
$File[] = fgets ($f,50);
}
fclose ($f);

?>[/php]

создал файл file.txt
Bodya
Vitya
Roma
Dima


Где и что я неправильно прописаЛ? У меня ничего не выводет :)
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 1.3.2009, 13:33; Ответить: ZiTosS
Сообщение #2


Banderas,

1) Кто за тебя будет обрабатывать получившийся массив, ты его сформировал, но не вывел на экран.
[php]<?php

$f = fopen("file.txt", "rt") or die ("ERROR");

while (!feof($f)) {
$File[] = fgets ($f,50);
}

fclose ($f);

print_r($File)
?>[/php]
2) Учти, что если строка будет больше 50 байт, у тебя будет обработана не полностью.
fgets() побайтовое считывание строки. Так же можно использовать функцию file(), она построчно сома в массив считывает.
3) Если программси уважает себя, он всегда будет форматировать код и делать его более легким для чтения. Всегда нужно ставить отступы. Стилей форматирования не так уж и мало, нужно придерживаться какого-то своего.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Banderas
Banderas
Topic Starter сообщение 1.3.2009, 13:47; Ответить: Banderas
Сообщение #3


У меня вывело
Array ( [0] => Bodya [1] => Vitya [2] => Roma [3] => Dima )

Специально попробовал... У меня file.txt весил 24 байта, я сделал 74, но оно все выводит...
Как здесь применить file ()?
Поищу статьи про грамотность програмирования )))
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 1.3.2009, 13:58; Ответить: ZiTosS
Сообщение #4


У меня вывело...

Так конечно я просто вам распечатал представление массива с помощью print_r()
Как видите
[php]echo $File[0]; // Bodya
echo $File[1]; // Vitya
echo $File[2]; // Roma
echo $File[3]; // Dima[/php]

Как здесь применить file ()?

[php]<?php

$f = fopen("file.txt", "rt") or die ("ERROR");
$File = file($f);
fclose ($f);

print_r($File)
?>[/php]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Banderas
Banderas
Topic Starter сообщение 1.3.2009, 16:10; Ответить: Banderas
Сообщение #5


а как сделать что бы не прописывать
[php]echo $File[0];
echo $File[1];[/php]
Выводилось все в файл.тхт

???

Написал только что бы выводило количество строк
[php]<?

$f = fopen ("file.txt", "rt") or die ("ERROR");
while (!feof($f))
{
$File[] = fgets ($f, 50);
}

fclose($f);

for ($i=0; $i<count($File); $i++);

echo "$i\n";
?>[/php]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 1.3.2009, 21:23; Ответить: ZiTosS
Сообщение #6


С fgets()
[php]<?php

$f = fopen("file.txt", "rt") or die ("ERROR");
while (!feof($f)) {
$File[] = fgets($f, 50);
}
fclose($f);

for($i = 0; $i < count($File); $i++) echo "Элемент [{$i}] - {$File[$i]}<br />";
?>[/php]
C file()
[php]<?php

$f = fopen("file.txt", "rt") or die ("ERROR");
$File = file($f);
fclose($f);

foreach($File as $key => $value) echo "Элемент [{$key}] - {$value}<br />";
?>[/php]

Как видишь я использовал 2 вида циклов. В for() надо указывать количество и перебирать. Предлагаю для перебора массива использовать цикл foreach().
[php]Полная запись:
foreach([Массив] as [ассоциация_или_номер] => [значение])

Сокращенная запись:
foreach([Массив] as [значение])[/php]


Поблагодарили: (0)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Banderas
Banderas
Topic Starter сообщение 1.3.2009, 23:07; Ответить: Banderas
Сообщение #7


Спасибо, теперь я понял =)
Я хоть что то понял, сам for написал - уже гордость берет ))))
Хотел спросить, когда нужно ставить { } ? Ато я их удалил и все нормально...
[php]for($i = 0; $i < count($File); $i++) echo "Элемент [{$i}] - {$File[$i]}<br />";[/php]
Например зачем тут [{$i}] ставить [] и {} ? Без них прекрасно все работает...
Так же $File[$i] - так тоже пашет...


????
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 2.3.2009, 1:53; Ответить: ZiTosS
Сообщение #8


Я всегда привык все переменные в распечатке в {}
К примеру вот 2 строки
[php]echo "Моё имя $FIO["name"]"; // не работает
echo "Моё имя {$FIO["name"]}"; // работает[/php]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Banderas
Banderas
Topic Starter сообщение 2.3.2009, 2:15; Ответить: Banderas
Сообщение #9


Думаю поюзать :) Ещё раз спасибо. Хочу получить което упражнение. Попробовать свои силы. Напишите кто-задание какое-то по масивам :)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 2.3.2009, 21:39; Ответить: ZiTosS
Сообщение #10


Ну раз так хочешь... Ждём твоего решения, задачки не сложные:

1) Есть массив
[php]$massiv = array(10, 0, 5, 35, 40, 0, 15, -1, -6, 0, 5);[/php]
Убрать из массива все отрицательные и нулевые элементы, не прибегая к созданию нового массива. Затем вывести получившийся на экран.

2) Массив пользователей, нужно вывести на экран в виде.
N | Фамилия | Имя | Отчество

[php]$USERS = array(
array('family'=>"Бешкеков", 'name'=>"Азбек", 'Ot4estvo'=>"Рувимович"),
array('family'=>"Ушлёпок", 'name'=>"Рамзес", 'Ot4estvo'=>"Акакиевич"),
array('family'=>"Масисин", 'name'=>"Василий", 'Ot4estvo'=>"Романович"),
array('family'=>"Бутылкин", 'name'=>"Вячеслвав", 'Ot4estvo'=>"Бутыркович")
);[/php]

3) Создать массив из n элементов и занести в него случайные числа, затем вывести его на экран в порядке возрастания чисел.

4) Есть ассоциативный массив, вывести данные по запрашиваемому ключу, ключ достаточно определять в начале скрипта в текстовой переменной.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Ручной обмен, ввод/вывод электронных валют | ЮMoney, WMZ, Крипта, Приват, Монобанк | Низкие комиссии, минимальные суммы сделок
быстро, удобно, по доступному курсу
200 Sostavitel 97677 11.2.2024, 21:07
автор: Wolfhound
Открытая тема (нет новых ответов) Нужна работа
0 filatd 707 12.1.2024, 17:08
автор: filatd
Открытая тема (нет новых ответов) Работа: Разная рутина
Работа, разные рутинные задачи: постинг / переговоры / поиск
1 ivanshargin 933 31.10.2023, 17:55
автор: ServersExpert
Открытая тема (нет новых ответов) Sbitcoin.ru – Ввод, Вывод, Обмен: Qiwi, YD, Btc, Btc-e, PM, Cash IN, PR24, MG, WU, Нал (RU, UA).
9 sbitcoinru 6746 10.10.2023, 19:25
автор: Sbitcoin
Открытая тема (нет новых ответов) Нужна удаленная работа
Нужна удаленная работа
0 filatd 990 12.9.2023, 11:40
автор: filatd


 



RSS Текстовая версия Сейчас: 29.3.2024, 19:17
Дизайн