Списки в PHP

Массивы, индексами которых являются числа, начинающиеся с нуля без пропусков, будем называть списками. С технической точки зрения разницы между массивами и списками нет.
Не знаю как вам, но мне удобнее создавать списки без указания индекса — пусть это сделает за меня PHP. Ведь я могу ненароком указать уже существующий индекс. Кроме того, такое автоматическое создание массивов удобно при записи текстового файла в массив для последующей обработки.Вот пример автоматического создания массива:

$People[]=»Коля»;

$People[]=»Витя»;
$People[]=»Дима»;

При этом PHP начнет нумерацию с наименьшего незанятого значения индекса. В частности, если переменная $People только сейчас инициализируется, то нумерация будет начата с нуля. В дальнейшем, с каждым новым элементом массива индекс будет увеличиваться на единицу.

Как видите все просто и удобно — не нужно указывать индексы. Однако, это как раз тот случай, когда мы не знаем точного числа элементов в массиве.

Соответственно, при работе с такими массивами целесообразно использовать функцию count(), которая определяет количество элементов в массиве.

Рассмотрим небольшой пример — чтение текстового файла в массив. Функция fopen() используется для открытия файла, функция feof() истинна, если достигнут конец файла, а функция fgets() читает строку из файла.

При работе с файлами мы не знаем, сколько строк будет содержать конкретный файл. Программируя на C или Pascal, нам нужно было бы создать динамический список, что вызывает проблемы у начинающих программистов, не знакомых с принципами работы с динамической памятью. В PHP все просто — вы можете добавить сколько угодно элементов в массив, не указывая их номера. Новые элементы массива будут добавлены в конец массива.

// Открываем файл

$f = fopen(«file.txt»,»rt») or die («Ошибка»);
// Читаем построчно
while(!feof($f))
{
// Заносим новый элемент (строку, прочитанную из файла) в конец массива
$File[ ] = fgets($f,50);
}
// Закрываем файл
fclose($f);