2016-11-28 2 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, мне нужно скопировать каждый х, у и г, чтобы отделить простые массивы, как

х = массив (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

yor приветствуются –

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 создаст $ х, $ у и $ Z ,

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

Немного Hacky, но поскольку этот вопрос относительно легко, давайте поиграем :-)

+0

Спасибо, я попробую это. – genesi5

Смежные вопросы