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

Тема в разделе "PHP", создана пользователем [lance], 23 мар 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. [lance]

    [lance] Постоялец

    Регистр.:
    31 дек 2007
    Сообщения:
    72
    Симпатии:
    4
    Имеется такой скрипт:
    Код:
    $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х-мерный массив. Надо сделать так, чтобы массив стал не многомерным. Т.е. объединить массивы. Прошу помощи.
     
  2. ewg777

    ewg777

    Регистр.:
    6 авг 2007
    Сообщения:
    763
    Симпатии:
    321
  3. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    Читай не file(), а file_get_contents() и не надо будет ничего объединять.
     
  4. [lance]

    [lance] Постоялец

    Регистр.:
    31 дек 2007
    Сообщения:
    72
    Симпатии:
    4
    Спасибо за оперативный ответ, но...
    Пробовал эту функию уже... Но есть одна проблема:
    array array_merge ( array $array1 , array $array2 [, array $... ] )
    т.е. надо задавать аргументы array_merge($data[1], $data[2]...)
    Я не знаю сколько их будет.

    Добавлено через 2 минуты
    Надо именно чтобы каждая строка файла являлась элементом массива (т.к. потом с ним придётся работать), а т.к. файлов много, создаётся многомерный массив.
     
  5. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    [lance], читай файлы строкой, а не массивом.
     
    [lance] нравится это.
  6. ewg777

    ewg777

    Регистр.:
    6 авг 2007
    Сообщения:
    763
    Симпатии:
    321
    implode и explode тебе в помощь. ;)
    И читай файлы строкой, а не массивом.
     
    [lance] нравится это.
  7. [lance]

    [lance] Постоялец

    Регистр.:
    31 дек 2007
    Сообщения:
    72
    Симпатии:
    4
    Спасибо, огромное, тупанул :) Щас попробую, отпишу о результате.
     
  8. Arqin

    Arqin

    Регистр.:
    17 мар 2009
    Сообщения:
    185
    Симпатии:
    37
    А не проще ли это
    Код:
    if (filetype($dir . $file)=="file")
    
    заменить на это
    Код:
    if (is_file($dir . $file))
    
    ?

    А насчет вопроса PHP_Master ответил =)
     
    [lance] нравится это.
  9. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    Фигли ты тогда удивляешься многомерному массиву?
     
  10. [lance]

    [lance] Постоялец

    Регистр.:
    31 дек 2007
    Сообщения:
    72
    Симпатии:
    4
    Пока только учусь, главное, чтобы работало, поэтому получается своеобразный быдлокод :)

    Добавлено через 1 минуту
    Не удивляюсь. Объяснил коряво видимо... Просто мне надо чтобы все файлы объединились в 1 массив и каждая строка каждого файла являлась элементом этого массива, но чтобы он не был многомерным. Т.е. чтобы строки из новых файлов записывались в конец массива, а не как многомерная надстройка. Надеюсь понятно объяснил.
     
Статус темы:
Закрыта.