3v4l.org

run code in 300+ PHP versions simultaneously
<?php $items = [ "3000mAh battery", "charges 1 smartphone", "input: 5W (5V, 1A) micro USB port", "output: Micro USB cable: 7.5W (5V, 1.5A)", "recharge time 3-4 hours", "includes Micro USB cable", // "1-Year Limited Warranty", "Lifetime test Warranty test2" ]; $result = []; foreach ($items as $item) { $res = explode(':', $item); if (count($res) > 1) { $key = $res[0]; array_shift($res); $result[$key] = implode(':', $res); continue; } if (is_numeric($item[0])) { $parts = (explode(' ', $item)); $key = array_pop($parts); $result[$key] = implode(' ', $parts); continue; } if (ctype_alpha($item[0])) { $parts = explode(' ', $item); $warranty = array_filter($parts, function ($x) { return strtolower($x) === 'warranty'; }); if (count($warranty) > 0) { $wkey = key($warranty); unset($parts[$wkey]); $result[reset($warranty)] = implode(' ', $parts); continue; } $key = array_shift($parts); $result[$key] = implode(' ', $parts); } } print_r($result);

preferences:
16.54 ms | 415 KiB | 5 Q