Задать вопрос

PHP: Array_column. Как вывести данные из txt-го файла в array_column?

Доброй ночи!)
Прошу помочь)
Есть текстовик.
Пример:
bd156d38fc5449e88911dfcab0bd12d2.png
Надо из этого вывести данные в array_column
Вот так:
$records = array(
    array(
        'id' => 2135,
        'first_name' => 'John',
        'last_name' => 'Doe',
    ),
    array(
        'id' => 3245,
        'first_name' => 'Sally',
        'last_name' => 'Smith',
    ),
    array(
        'id' => 5342,
        'first_name' => 'Jane',
        'last_name' => 'Jones',
    ),
    array(
        'id' => 5623,
        'first_name' => 'Peter',
        'last_name' => 'Doe',
    )
);


Прошу показать примеры)
Спасибо, за внимание)
  • Вопрос задан
  • 3184 просмотра
Подписаться 5 Оценить 1 комментарий
Решения вопроса 1
@iSensetivity
бухгалтер, програміст-самоук
Накидал на коленке

<?php
$array = array();
$lines = file('you_file.txt');
foreach ($lines as $value){
    $i = explode(' ', trim($value)); //
    $array[] = array('id' => "$i[0]", 'first_name' => "$i[1]", 'last_name' => "$i[2]");
}
var_dump($array);
?>


5495980.png
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
BoneFletcher
@BoneFletcher
$result = [];
$file = file_get_contents('file.txt');
$rows = explode('\n', $file);
$titles = explode('\t', array_shift($rows));
foreach ($rows as $row) {
    $cols = explode('\t', $row);
    for ($i=0; $i<count($titles); $i++) {
        if (isset($cols[$i])) {
            $cols[$titles[$i]] = $cols[$i];
            unset($cols[$i]);
        }
    }
    $result[] = $cols;
}

$first_names = array_column($result, 'first_name');
print_r($first_names);
Ответ написан
Комментировать
sergoslav_0
@sergoslav_0
PHP / Magento / Laravel
Я в таких случаях пользуюсь функцией fgetcsv
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы