@0ldn0mad

Как сделать часть из списка строковых данных для ключа и часть для значения массива?

Дан список строковых данных:
25 Mn Марганец (а.м. 54,938):
26 Fe Железо (а.м. 55,847):
27 Со Кобальт (а.м. 58,9332):
28 Ni Никель (а.м. 58,7):
29 Cu Медь (а.м. 63,546):
Как из такого списка получить массив вида?:
[H] => [Водород], [He] => [Гелий], [Li] => [Литий]........
  • Вопрос задан
  • 59 просмотров
Решения вопроса 1
roswell
@roswell
и швец, и жнец, и на дуде игрец
$input =<<<EOT
25 Mn Марганец (а.м. 54,938):
26 Fe Железо (а.м. 55,847):
27 Со Кобальт (а.м. 58,9332):
28 Ni Никель (а.м. 58,7):
29 Cu Медь (а.м. 63,546):
EOT;

$elements = [];
if (preg_match_all('/^\d+\s(\S+)\s(\S+)/mu', $input, $matches, PREG_SET_ORDER)) {
    foreach ($matches as $match) {
        $elements[$match[1]] = $match[2];
    }
}

var_export($elements);
/*
array (
  'Mn' => 'Марганец',
  'Fe' => 'Железо',
  'Со' => 'Кобальт',
  'Ni' => 'Никель',
  'Cu' => 'Медь',
)
*/
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы