2016-09-12 4 views
1

私は開発しているAPIに問題があり、lat/lon座標の配列を返します。アプリケーション側のパーサを壊さないために、私はこのように、均一なネストされた配列として返すためにデータを必要とする:PHP:さまざまなサイズの配列を一様なネスト配列にまとめる

{ 
    coordinates: [ 
    [ 
     -88.451, 
     41.41 
    ], 
    [ 
     -85.123, 
     40.10 
    ], 
    [ 
     -59.451, 
     42.42 
    ], 
    [ 
     -89.124, 
     44.10 
    ] 
    ] 
} 

をしかし、何らかの理由で、私は時折のようなグループにネストされているから引いていたデータこれは:あなたがネストされた配列の均一なセットにこれらのネストされた配列をマージするための良い方法を持っている場合

{ 
    coordinates: [ 
    [ 
     -88.451, 
     41.41 
    ], 
    [ 
     -85.123, 
     40.10 
    ], 
    [ 
     [ 
     -59.451, 
     42.42 
     ], 
     [ 
     -89.124, 
     44.10 
     ] 
    ], 
    ] 
} 

[[緯度、経度]、[緯度、経度]]は、私は永遠に感謝するでしょう。

多くのおかげで、 ロブ

答えて

0
$myarray = [ 
    [ 
     -88.451, 
     41.41 
    ], 
    [ 
     -85.123, 
     40.10 
    ], 
    [ 
     -59.451, 
     42.42 
    ], 
    [ 
     -89.124, 
     44.10 
    ] 
]; 

function contains_array($array) { 
    foreach ($array as $val) { 
     if (is_array($val)) { 
      return true; 
     } 
    } 
    return false; 
} 

function array_flatten($array, $return) { 
    foreach ($array as $key => $value) { 
     if (is_array($value) && contains_array($value)) { 
      $return = array_flatten($value, $return); 
     } else { 
      $return[$key] = $value; 
     } 
    } 
    return $return; 
} 

$res = array_flatten($myarray, array()); 
var_dump($res); 

これは

+0

が入力JSON、ではない配列であることに注意してくださいトリックを行う必要があります。 –

+0

は完全に機能しました。ありがとうございますR.チャペル! –

+0

@Object Manipulator実際には、PHP 5.4で追加された短い配列構文です。 –

関連する問題