Не могу решить задачу на php. Из нескольких текстовых фалов собрать массив строк $Data

Нужно определить наличие файлов (текстовые), затем их прочитать построчно и внести в массив $Data. Не получается в функции обработать файлы, выдает значение Null. Пробовал с глобальной переменной тоже не помогло. В какую сторону смотреть? Вот код:

<?php 
$dir    = 'files_ns';
$BaseFails = [];
$failes = scandir($dir);
foreach ($failes as $value) {
    if (substr($value,0,2)=='ns'){
        $BaseFails[]=$value;
    }
}

 $Data = [];
    for ($i=0; $i < count($BaseFails); $i++) {
    $Data[] = StrFails($BaseFails[$i]);
 } 

foreach ($Data as $value) {
    echo $value.'<br>';
}


function StrFails($BaseFails) 
{
    $handle = @fopen("BaseFails", "r");
    if ($handle) {
        $Data = array();
        while (($buffer = fgets($handle, 4096)) !== false) {
            $Data[] = $buffer;
        }
        if (!feof($handle)) {
        echo "Error: unexpected fgets() fail\n";
        }
        fclose($handle);
    }
    return $Data;
}
    
?>

Ответы (1 шт):

Автор решения: Мих Креп

У вас на var_dump($Data); null? Ну так у вас $Data нигде не используется в области видимости вашего кода. Я так понимаю должно быть как-то так.

    $Data = [];
    for ($i=0; $i < count($BaseFails); $i++) {
        $Data[] = StrFails($BaseFails[$i]);
    } 

Это если ваша программа верно работает (не вникал). Еще было бы неплохо придерживаться какого-то стиля оформления кода. Рекомендую PSR

→ Ссылка