PHP,将元素从多维数组复制到简单数组

时间:2016-11-28 07:37:35

标签: php multidimensional-array

我需要将内部元素从多维数组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,...),依此类推。

你帮我解决了吗?我已经尝试了我所知道的或我能理解的东西 - 没有任何方法可以按照我需要的方式运作。

2 个答案:

答案 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将返回xyz,因此$$key将创建$ x,$ y和$ z。

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

有点hacky但是因为这个问题相对简单,让我们玩一下: - )