Возможно, вам придется использовать регулярное выражение или свою собственную логику.
Гарантируется ли, что строка ":" нигде не появляется внутри самих значений? Если это так, вы можете использовать implode
, чтобы разбить строку на массив переменных ключей и значений. Затем вам придется пройти через этот массив и отформатировать его так, как вы хотите. Вот грубый (вероятно, неэффективный) пример, который я быстро собрал:
<?php
$keysAndValuesArray = implode(': ', $dataString);
$firstKeyName = 'userAccountName';
$associativeDataArray = array();
$currentIndex = -1;
$numItems = count($keysAndValuesArray);
for($i=0;$i<$numItems;i+=2) {
if($keysAndValuesArray[$i] == $firstKeyName) {
$associativeDataArray[] = array();
++$currentIndex;
}
$associativeDataArray[$currentIndex][$keysAndValuesArray[$i]] = $keysAndValuesArray[$i+1];
}
var_dump($associativeDataArray);