Объединение элементов многомерного массива

Статус
В этой теме нельзя размещать новые ответы.
Писал я как-то функцию... мне там тоже в 1 массив всё нужно было загнать... использовал рекурсию+array_merge
 
Походу так и придётся, т.к. предыдущие методы не подходят для моей задачи =\
 
Не парь мозги - читай файл строкой и перед обработкой дели в массив по переводу строки, если тебе нужен именно построчный массив.
 
Не парь мозги - читай файл строкой и перед обработкой дели в массив по переводу строки, если тебе нужен именно построчный массив.
Я не пойму как мне читать строкой. Имеется ввиду прочитать все файлы в 1 строку, а потом её запихнуть в массив с разделением на элементы? Так?
Тогда возникает вопрос как в моём случае всё в 1 строку загнать?

Всё, разобрался. Через foreach организовал. Всем спасибо, все свободны :)
 
Я не пойму как мне читать строкой.
Вариантов несколько, например так.
PHP:
$f=fopen($file, 'r');
while (!feof($f)){
$line=fgets($f); // Вот твоя строка и делай с ней че угодно, хоть в массив хоть куда засунь...
}
 
Вариантов несколько, например так.
PHP:
$f=fopen($file, 'r');
while (!feof($f)){
$line=fgets($f); // Вот твоя строка и делай с ней че угодно, хоть в массив хоть куда засунь...
}

Как раз fgets он и пытался избежать)
Ему нужен был вариант:
PHP:
$line = file_get_contents($f);
$ar = explode("тут перенос строки \n или \n\l ", $line);
 
Имеется такой скрипт:
Код:
$dir = "C:\/"; // каталог с файлами
if (is_dir($dir)) {
 if ($dh = opendir($dir)) {
  while (($file = readdir($dh)) !== false) {
   if (filetype($dir . $file)=="file") // Если тип переменной - file
   $data[] = @file("C:\/".$file); //читаем файл в массив
   }
  closedir($dh);
 }
Т.е. содержимое файлов диры записывается в 2х-мерный массив. Надо сделать так, чтобы массив стал не многомерным. Т.е. объединить массивы. Прошу помощи.

Как раз fgets он и пытался избежать
Напрасно, если б файлы были большими. Поскольку в случае fgets память тратится только под строку, читаемую в память, а в случае file_get_contents или file файл грузится целиком в оперативную память.

Но в данном случае, раз ТС все файлы папки грузит в массив, значит файлов немного и они небольшие.
 
Напрасно, если б файлы были большими. Поскольку в случае fgets память тратится только под строку, читаемую в память, а в случае file_get_contents или file файл грузится целиком в оперативную память.
Во как?
То есть по твоему при использовании построчного считывания из файла расход памяти будет меньше, чем считать сразу весь файл в строку.
Объясни каким образом.
 
Во как?
То есть по твоему при использовании построчного считывания из файла расход памяти будет меньше, чем считать сразу весь файл в строку.
Объясни каким образом.

Про построчное чтение: Для просмотра ссылки Войди или Зарегистрируйся.
Мою фразу
а в случае file_get_contents или file файл грузится целиком в оперативную память.
в контексте данной ветки надо понимать так, что если файл читается функцией file() в массив, то все содержимое файла окажется в оперативке, в перемнной-массиве, возвращаемом file(). Если файл большой, оперативки скушается много. Что не есть гуд. Поэтому в задачах построчной обработки файлов нет никакой необходимости читать фалы целиком переменные-массивы функцией file(). Лучше пройтись построчно, fgets().
 
А может стоит прочитать задачу ТС, а не просто гиппотезировать?
Речь ведётся о считывании всего файла, а при таком раскладе фиолетово как его читать целиком или построчно.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху