Вам просто нужно извлечь эти значения из двух разных переменных и просто присвоить их новой переменной, скажем $result
$string = "11111*1; 22222*1; 33333*1; 44444*1";
$array = explode('; ', $string);
foreach ($array as $k => $v) {
list($sku, $qty) = explode('*', $v);
$result[$k]['sku'] = $sku;
$result[$k]['qty'] = $qty;
}
echo json_encode($result);
json_encode - возвращает JSON-представление значения
список - назначить переменные, как если бы они были массивом
выход
[{
"sku": "11111",
"qty": "1"
}, {
"sku": "22222",
"qty": "1"
}, {
"sku": "33333",
"qty": "1"
}, {
"sku": "44444",
"qty": "1"
}]
Демо .
EDIT
Вы можете использовать array_combine , чтобы добиться того же.
foreach ($array as $k => $v) {
$result[$k] = array_combine(['sku', "qty"],explode('*', $v));
}
Демо