Я пытался обдумать это, и у меня просто заморозили мозги.
У меня есть файл с несколькими строками, каждая строка разделена знаком «=» на отдельные фрагменты данных:
// Example file. Syntax: <key>=<Value>
key1=value1
key1=value2
key1=value3
key2=value1
key2=value2
key3=value1
key3=value2
key3=value3
key3=value4
Мне нужно разбить этот файл на отдельные строки и выбросить их все в массив так, чтобы key1 содержал массив значений1, 2, 3, key2 имел свои значения, key3 имел свои значения, поэтому и так далее. Примерно так:
Array
(
[key1] => Array
(
[0] => value1
[1] => value2
[2] => value3
)
[key2] => Array
(
[0] => value1
[1] => value2
)
[key3] => Array
(
[0] => value1
[1] => value2
[2] => value3
[3] => value4
)
)
Пока что у меня есть следующий код:
$loadFile = file('file.txt');
$returnArray = array();
foreach ($loadFile as $line) {
$startWith = substr(trim($line), 0, 2);
if (empty($line) || $startWith == '//') {
continue;
}
list($key, $value) = explode('=', $line);
$returnArray[$key] = $value;
}
return $returnArray;
Однако все, что я получаю, это:
Array ( [key1] => value3 [key2] => value2 [key3] => value4 )
I Я также пробовал
$loadFile = file('file.txt');
$returnArray = array();
foreach ($loadFile as $line) {
$startWith = substr(trim($line), 0, 2);
if (empty($line) || $startWith == '//') {
continue;
}
$exp = explode('=', $line);
$returnArray[$exp[0]] = $exp[1];
}
return $returnArray;
Что также дает мне тот же результат. Я также пробовал array_merge, который просто помещал все в массив со значением numeri c в качестве ключа.