Я ищу способ аккуратно поместить двухстрочный файл, разделенный символом трубы (|), в ассоциированный массив, где первая строка — это заголовки. Я видел несколько симпатичных ручных примеров, но ничего, что позволяло бы файлу потенциально изменять структуру с течением времени.
В действительности я хотел бы взять это:
id|first_name|last_name|occupation|age|someotherfield
1|john|doe|cleaner|32|meta
и превратить это в это:
array
"id" => 1
"first_name" => john
"last_name" => doe
"occupation" => cleaner
"age" => 32
"someotherfield" => meta
если у кого-то есть предложения, я бы очень хотел услышать лучший подход.
После открытия файла вы можете выбрать первую строку, чтобы получить имена столбцов, затем выбрать вторую строку, чтобы получить значения, а затем объединить их с array_combine
,
$handle = fopen('path/to/yourfile', 'r');
$keys = fgetcsv($handle, 0, '|');
$values = fgetcsv($handle, 0, '|');
$result = array_combine($keys, $values);
Других решений пока нет …