#php #arrays
#php #массивы
Вопрос:
я создаю метод, который будет считывать файл с типом application / octet, и вот некоторые из кода. Необработанные данные :
GTHHS;MEKID Interface;5496;2012-07-20;
NM1;081;IN1;980898989;2001-01-15;Mr;Gaf;Uhkil;Uhkil,Gaf;PRI;Gaf
$contents = file_get_contents($tmp_filename);
$stringContents = explode(";", $contents);
Теперь это дает мне такой вывод :
Array
(
[0] => GTHHS
[1] => MEKID Interface
[2] => 5496
[3] => 2012-07-20
NM1
[4] => 081
[5] => IN1
[6] => 980898989
[7] => 2001-01-15
[8] => Mr
[9] => Gaf
[10] => Uhkil
[11] => Uhkil,Gaf
[12] => PRI
[13] => Gaf
PR1
[14] => 081
[15] => IN1
[16] => 20730089
[17] => 7 The Schooner
[18] => Auhaas
[19] => Huuula Ave
[20] =>
[21] => Kishma
PR2
[22] => 081
[23] => IN1
[24] => 232323233
[25] => 400006
[26] => HGD
[27] => M
[28] => M
[29] => 2007-10-16
[30] => 1976-03-31
);
Как я могу сделать NM1
, PR1
в качестве главы массива, как это :
Array (
[NM1] = array(
[0] => GTHHS
[1] => MEKID Interface
[2] => 5496
[3] => 2012-07-20
)
);
Я планирую также создать внутренний массив [0]- [3] как json.
Комментарии:
1. как определить наличие этих ключей массива (вы упомянули heads) в разнесенных элементах? это связано с появлением новой строки, поскольку у вас здесь есть демодуляция?
2. предоставьте необработанные данные, я думаю, что есть другой способ разбить это, поскольку нет шаблона, где получить указанные требуемые ключи
3. закончил редактирование моего сообщения.
Ответ №1:
Если вы разнесете содержимое по n
, у вас будет каждая строка, начинающаяся с этого идентификатора. Если вы затем просто взорвете by ;
в этой строке и добавите его как вложенный массив, вы получите его так, как хотите.
На самом деле это выглядит как обычный старый CSV-файл с вашим ifentifier в первой строке. Если это так, попробуйте что-то вроде этого:
$data = array();
if (($handle = fopen($filename, 'r')) !== FALSE)
{
while (($row = fgetcsv($handle, 1000, ";", """, "n")) !== FALSE)
{
$key = array_shift($row);
$data[$key] = $row;
}
fclose($handle);
}
echo json_encode($data);
Комментарии:
1. спасибо за ваш ответ. файл не csv, а только ФАЙЛ. Он не имеет никакого расширения.