Преобразование массива с равными в ассоциативный массив

У меня есть следующий массив в PHP

array(
"lat = -0.47023808202763651",
"lon = -163.04466494518647",
"alt = 4263.5330573538085",
"hgt = 0.382990122",
"nrm = 0.0816367865,0.996595144,-0.0115590692",
"rot = 0.34263891,-0.470143765,0.647551596,0.492179215",
"CoM = 0,0,0",
"stg = 0")

Как я могу преобразовать это в ассоциативный массив, где ключи — это то, что раньше равно, а значения — это то, что после равенства:

array(
"lat" => "-0.47023808202763651",
"lon" => "-163.04466494518647",
"alt" => "4263.5330573538085",
"hgt" => "0.382990122",
"nrm" => "0.0816367865,0.996595144,-0.0115590692",
"rot" => "0.34263891,-0.470143765,0.647551596,0.492179215",
"CoM" => "0,0,0",
"stg" => "0")

Я видел здесь ходя массив: Разнести строку в ассоциативный массив Но не удалось конвертировать с помощью этого метода …

Какие-нибудь советы? Образец кода?

-2

Решение

Вам нужно зациклить массив и взорвать его и создать новый массив с ключом и значением

$new_array = array();
foreach( $array as $value ){
list($key,$value)=explode('=',$value);
$new_array[trim($key)] = trim($value);
}
print_r($new_array);

Выход:

Array
(
[lat] => -0.47023808202763651
[lon] => -163.04466494518647
[alt] => 4263.5330573538085
[hgt] => 0.382990122
[nrm] => 0.0816367865,0.996595144,-0.0115590692
[rot] => 0.34263891,-0.470143765,0.647551596,0.492179215
[CoM] => 0,0,0
[stg] => 0
)
3

Другие решения

        function splitStringsToArray($array) {
$need = [];
foreach ($array as $v) {
list($key, $value) = explode(' = ', $v);
$need[$key] = $value;
}

return $need;
}

$arrayYouHave = array(
"lat = -0.47023808202763651",
"lon = -163.04466494518647",
"alt = 4263.5330573538085",
"hgt = 0.382990122",
"nrm = 0.0816367865,0.996595144,-0.0115590692",
"rot = 0.34263891,-0.470143765,0.647551596,0.492179215",
"CoM = 0,0,0",
"stg = 0");

$arrayYouNeed = splitStringsToArray($arrayYouHave);

print_r($arrayYouHave, $arrayYouNeed);
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector