2017-11-01 19 views
-2

に等号を持つ配列を変換する私は連想配列

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" 
) 

は、どのように私はこれはキーが対等の前に何をしているところ連想配列に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" 
) 

私はここで、配列歩いて見てきました:任意のヒント...

Explode a string to associative arrayをしかし、この方法を使用して変換することができませんでしたか?サンプルコード?

+3

'foreach'ループ、'上で爆発します= '2つの部分から新しい配列を作成しますか? –

+0

配列ウォークの例がうまくいかないのはなぜですか?あなたがそれをどうやって行うのか。ちょうどあなたの値をトリム()して、卑劣なスペースがあなたのキーに終わることはありません。 – IncredibleHat

+1

_ "この方法では変換できませんでした" _ - 試したことと何が起こったのかを表示してください。 –

答えて

3

あなたがループに配列を必要とし、それを爆発し

$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 
) 
0
 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);