2016-11-28 130 views
1

我需要將JSON多維數組的內部元素複製到簡單數組。PHP,從多維數組複製元素到簡單數組

例如: JSON長相撒謊那個:

{ 
    "Point" : [ 
     {"x": 0, "y": 37, "z": 93}, 
     {"x": 1, "y": 81, "z": 44}, 
     {"x": 2, "y": 31, "z": 91}, 
     {"x": 3, "y": 45, "z": 6}, 
     .... 
    ] 
} 

json_parser後,我需要複製每個x,y和z以分離簡單陣列等

X =陣列(1,2, 3,4,...) y =數組(37,81,31,45,...)等等。

你能幫我解決嗎?我已經嘗試了我所知道的一切,或者我能理解的東西 - 沒有任何工作在我需要的方式。

+0

我可以提供的代碼,但我決定只給你一個提示第一:循環的'Points'和將每個「X」,「Y」和「Z」添加到相應的數組中。 – Emad

回答

0

你可以試試這個:

<?php 
error_reporting(0); 
$str = '{ 
"Point" : [ 
    {"x": 0, "y": 37, "z": 93}, 
    {"x": 1, "y": 81, "z": 44}, 
    {"x": 2, "y": 31, "z": 91}, 
    {"x": 3, "y": 45, "z": 6} 
] 
}'; 
$array = json_decode($str,true); 
$x = array(); 
$y= array(); 
$z= array(); 
foreach($array['Point'] as $single) 
{ 
    $x[] = $single['x']; 
    $y[] = $single['y']; 
    $z[] = $single['z']; 
} 
print_r($x); 
print_r($y); 
?> 
+0

謝謝,該工作 – genesi5

+0

歡迎您 –

0

您可以使用:

<?php 

$data = json_decode('{ 
    "Point" : [ 
     {"x": 0, "y": 37, "z": 93}, 
     {"x": 1, "y": 81, "z": 44}, 
     {"x": 2, "y": 31, "z": 91}, 
     {"x": 3, "y": 45, "z": 6} 
    ] 
}', true); 


foreach ($data['Point'] as $row) { 
    foreach ($row as $key => $value) { 
     $$key[] = $value; 
    } 
} 

var_dump($x, $y, $z); 

注:$key將返回xyz,所以$$key將創建$ X,$ y和$ Z^。

$$key = ${$key} = ${'x'} = $x 

有點哈克但這個問題是比較容易的,讓我們玩了一下:-)

+0

謝謝,我會盡力。 – genesi5