<?php
$input = [
"prefix1 foo",
"prefix2 bar",
"prefix1 aaa",
"prefix2 bbb",
"prefix3 ccc",
"prefix1 111",
"prefix2 222"
];
$prefixes = ['prefix1', 'prefix2', 'prefix3'];
$output = array();
$lastidx = count($prefixes);
foreach ($input as $item) {
list($prefix, $value) = explode(' ', $item);
$index = array_search($prefix, $prefixes);
if ($index < $lastidx) $output[] = array();
$output[count($output)-1][$prefix] = $value;
$lastidx = $index;
}
print_r($output);
preferences:
56.76 ms | 402 KiB | 5 Q