За последние 24 часа нас посетили 17685 программистов и 1699 роботов. Сейчас ищет 1291 программист ...

Вопрос про массив

Тема в разделе "PHP для новичков", создана пользователем antropoied, 16 дек 2018.

  1. antropoied

    antropoied Активный пользователь

    С нами с:
    8 авг 2018
    Сообщения:
    23
    Симпатии:
    0
    Имеется код который читает текстовые файлы в массив
    PHP:
    1. $arrays = file("177c.lst");
    2.       for ($i=0, $c=count($arrays); $i<$c; $i++)
    3.           {
    4.              echo arrays[$i];
    5.           }
    6.  
    7. $arrays = file("119j.lst");
    8.       for ($i=0, $c=count($arrays); $i<$c; $i++)
    9.           {
    10.              echo $arrays[$i];
    11.           }
    12.  
    13. $arrays = file("272.lst");
    14.       for ($i=0, $c=count($arrays); $i<$c; $i++)
    15.           {
    16.              echo arrays[$i];
    17.           }
    Вопрос заключается в том, как оптимизировать этот код и считать все файлы в единый массив.
    P.S. в массив придется читать около 30 файлов.
     
  2. Artur_hopf

    Artur_hopf Старожил

    С нами с:
    7 май 2018
    Сообщения:
    2.264
    Симпатии:
    405
    @antropoied можно в функцию засунуть, как то так:
    PHP:
    1. arrays = [];
    2. function arratFile($files){
    3.      
    4.     for ($i=0, $c=count($file); $i<$c; $i++)
    5.      {
    6.           arrays[$i] = $file;
    7.      }
    8.      
    9. }
    10. arratFile(file("177c.lst"));
    11. return arrays;
    Да и не по названиям файлов искать а по расширению .lst, как то так:
    PHP:
    1. $dir = ''; //директория где лежат файлы
    2. $files = scandir($dir); //сканим
    3. $result = "";
    4. foreach ($files as $file){
    5.    if(preg_match('/\.(lst)/', $file)){
    6.          $result .= $file.'<br>';
    7.     }
    8. }
    9. echo $result;
     
  3. antropoied

    antropoied Активный пользователь

    С нами с:
    8 авг 2018
    Сообщения:
    23
    Симпатии:
    0
    приведенный выше код не работает PHP ругается на 1 строку :Parse error: syntax error, unexpected
     
  4. Artur_hopf

    Artur_hopf Старожил

    С нами с:
    7 май 2018
    Сообщения:
    2.264
    Симпатии:
    405
    PHP:
    1. $arrays
    совсем в php не разбираетесь? переписывание ничего не даст =(
     
  5. antropoied

    antropoied Активный пользователь

    С нами с:
    8 авг 2018
    Сообщения:
    23
    Симпатии:
    0
    PHP:
    1. $arrays[] = array();
    2. function arratFile($file){
    3.    
    4.     for ($i=0, $c=count($file); $i<$c; $i++)
    5.      {
    6.           $arrays[$i] = $file;
    7.        
    8.      }
    9.    
    10. }
    11. arratFile(file('934.lst'));
    12. return $arrays;
    к сожалению ничего не изменилось, код не работает.
     
  6. Artur_hopf

    Artur_hopf Старожил

    С нами с:
    7 май 2018
    Сообщения:
    2.264
    Симпатии:
    405
    PHP:
    1. function arrayFile($arrays){
    2.       for ($i=0, $c=count($arrays); $i<$c; $i++)
    3.           {
    4.              echo arrays[$i];
    5.           }
    6. }
    7.  
    8. arrayFile(file("177c.lst"));
    9. arrayFile(file("119j.lst"));
    10. arrayFile(file("272.lst"));
    Что вам дает бездумное копирование? :(
     
  7. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    PHP:
    1. $listing = [
    2.     '177c.lst',
    3.     '119j.lst',
    4.     '272.lst',
    5.     # ...
    6. ];
    7.  
    8. $content = array_map ( 'file', $listing );
    9.  
    10. print_r ($content);
    --- Добавлено ---
    PHP:
    1. foreach ( $content AS $b )
    2. {
    3.     echo implode ( '<br>' . PHP_EOL, $b ) . '<br>' . PHP_EOL;
    4. }
     
    antropoied нравится это.
  8. antropoied

    antropoied Активный пользователь

    С нами с:
    8 авг 2018
    Сообщения:
    23
    Симпатии:
    0
    Большое спасибо всем кто откликнулся.