Как файл с текстом преобразить в массив

Есть файл с текстом "5 4 6 3 51 23 43 10 12 21".Нужно сделать со всех цифр массив и что бы каждое число было отдельно.

<?php
 error_reporting(-1);

function putArr() {
$files = file('mass.txt');  //сам файл с цифрами
foreach($files as $file){   // думал нужно через foreach, но все слипается в одну строку
    echo $file;
}
}
putArr();

?>

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

Автор решения: raspberry

Например, используя регулярки:

$text = '5 4 6 3 51 23 43 10 12 21';
preg_match_all('/\d+/usi', $text, $matches);
print_r($matches[0]);

Или с помощью функции explode:

$text = '5 4 6 3 51 23 43 10 12 21';
print_r(explode(" ", $text));

Результат:

Array
(
    [0] => 5
    [1] => 4
    [2] => 6
    [3] => 3
    [4] => 51
    [5] => 23
    [6] => 43
    [7] => 10
    [8] => 12
    [9] => 21
)
→ Ссылка
Автор решения: Slava

Разбить строку на массив:

$arr = explode(" ", $files);

→ Ссылка
Автор решения: Ivan

Если хотите получить массив чисел с типом STRING то:

function putArr() {
    $files = file('mass.txt');  //сам файл с цифрами
    return explode(' ', $files[0]);
}

$res = putArr();

Если нужно преобразовать к типу INT:

function putArr() {
    $files = file('mass.txt');  //сам файл с цифрами
    return array_map(static function ($string) {return (int)$string; }, explode(' ', $files[0]));
}

$res = putArr();
→ Ссылка