3v4l.org

run code in 300+ PHP versions simultaneously
<?php $str = <<<'EOF' text 16.11 19.22 21.33 text 17.11 23.22 25.33 27.55 text 18.11 26.22 EOF; echo 'Если не завязываться на количестве пробелов: ', PHP_EOL; $res = []; $lines = preg_split('#[\n\r]+#', trim($str)); foreach ($lines as $line) { $prices = preg_split('#\s+#', $line); $key = array_shift($prices); $res[] = ['key' => $key, 'prices' => $prices]; } echo json_encode($res), PHP_EOL; echo 'Если количество/вид пробелов жёстко задано:', PHP_EOL; $res = []; $lines = explode("\n", trim($str)); foreach ($lines as $line) { [$key, $prices] = explode(" ", $line); $prices = explode(' ', $prices); $res[] = ['key' => $key, 'prices' => $prices]; } echo json_encode($res), PHP_EOL;
Output for 7.1.25 - 7.1.30, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.27, 8.2.0 - 8.2.17, 8.3.0 - 8.3.4
Если не завязываться на количестве пробелов: [{"key":"text","prices":["16.11","19.22","21.33"]},{"key":"text","prices":["17.11","23.22","25.33","27.55"]},{"key":"text","prices":["18.11","26.22"]}] Если количество/вид пробелов жёстко задано: [{"key":"text","prices":["16.11","19.22","21.33"]},{"key":"text","prices":["17.11","23.22","25.33","27.55"]},{"key":"text","prices":["18.11","26.22"]}]

preferences:
158.52 ms | 404 KiB | 163 Q