Как получить только значение ассоциативного массива в PHP (без ключа)?
У меня есть класс KeyValueSystem, который анализирует файл, в котором хранятся пары строк ключ=значение и строит из этого ассоциативный массив.
<?php
class KeyValueSystem {
protected $array = [];
public static function parse_File($file_name) {
$file_data = explode('\n', file_get_contents($file_name));
$parsed_data = new KeyValueSystem;
foreach ($file_data as $line) {
$line = explode('=', $line);
$parsed_data->add_Pair($line[0], $line[1]);
}
return $parsed_data;
}
public function add_Pair($key, $value) {
$this->array[$key] = $value;
}
public function delete_Pair($key) {
unset($this->array[$key]);
}
public function get($key) {
return $this->array[$key];
}
}
?>
В корне проекта есть файл example.fgh.
hello=Hello, world!
howru=How are you?
С основного файла PHP я создаю объект KeyValueSystem с использованием метода parse_File, который читает тот файл и создаёт ассоциативный массив.
<?php
require_once('libraries/smarty/Smarty.class.php');
require_once('tools.php');
$smarty = new Smarty;
$data = KeyValueSystem::parse_File('example.fgh');
$smarty->assign('assigned_text', "{$data->get('hello')}");
$smarty->display('pages/home.tpl');
?>
Здесь я пытаюсь отобразить текст из файла под ключом howru, но возникает странная проблема — на странице отображается не только значение из ассоциативного массива, но после и его ключ. Мне нужно чтобы отображалось только значение (текст How are you?).

Что исправить в коде?
Ответы (1 шт):
Заменить
explode('\n', $str);
на
explode("\n", $str);
Т.к. в одинарных кавычках это уже не управляющая последовательность, а просто строка ( https://www.php.net/manual/ru/language.types.string.php#language.types.string.syntax.double )