代码之家  ›  专栏  ›  技术社区  ›  logo3801

将等于的数组转换为关联数组

  •  -2
  • logo3801  · 技术社区  · 7 年前

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

    Explode a string to associative array

    有什么提示吗?示例代码?

    2 回复  |  直到 7 年前
        1
  •  3
  •   Ravinder Reddy    7 年前

    您需要循环数组并将其分解,然后使用键和值创建一个新数组

    $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
    )
    
        2
  •  0
  •   Lexxusss    7 年前
            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);