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