我需要将内部元素从多维数组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 = array(37,81,31,45,...),依此类推。
你帮我解决了吗?我已经尝试了我所知道的或我能理解的东西 - 没有任何方法可以按照我需要的方式运作。答案 0 :(得分: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);
?>
答案 1 :(得分: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
将返回x
,y
和z
,因此$$key
将创建$ x,$ y和$ z。
$$key = ${$key} = ${'x'} = $x
有点hacky但是因为这个问题相对简单,让我们玩一下: - )