2013-08-22 89 views
0

你好我无法弄清楚如何遍历这个json编码数组,并为每个对象,获取它的所有值。我需要将每个值作为自己的变量。json_encode获取值foreach对象

echo json_encode($formulars); 

这是我所得到的,当我赞同它

[{"project_name":"polle","type":"support","title":"vi","reason":"prover","solution":"igen","comments":"okay ","date_stamp":"2013-08-20 14:06:37","used_time":132},{"project_name":"dolla","type":"support","title":"lolol","reason":"skl","solution":"dskal","comments":"kflafda ","date_stamp":"2013-08-20 14:11:36","used_time":210},{"project_name":"polle","type":"fejl","title":"lol","reason":"aksdl","solution":"fdjks","comments":"djsks ","date_stamp":"2013-08-20 14:13:27","used_time":1230}] 

我已经试过这段代码,我设法脱身,从第一个对象的PROJECT_NAME,这就是它:

foreach ($formulars as $current => $project_name) { 
     $project_name['project_name']; 

    } 

那么,有什么办法可以让每个对象中的所有变量我的数组而不仅仅是PROJECT_NAME的?

像这样:

foreach ($formulars as $current){ 
    $projectName = $current['project_name']; 
    $type = $current['type']; 
    $reason = $current['reason']; 

} 

在此先感谢

+1

尝试json_decode(),那么你可以访问它。 – Parixit

+0

“像这样:”代码似乎就足够了。为什么它不工作?发生了什么? – mario

+0

哦,上帝马里奥我竟然没有测试出“这样”的代码,我只是快速输入了它。我只是试了一下,它的工作。我觉得很愚蠢,呵呵。谢谢你! –

回答

0

好像你有一个数组内的对象。所以你需要遍历数组并获取每个对象。只需JSON_DECODE你的编码字符串如下。

也许:

$data = json_decode($formulars,true); 
/* Since it's only one object inside the array, you could just select element zero, but I wil loop*/ 

//You should now be able to do this 
foreach ($data as $current){ 
    $projectName = $current['project_name']; 
    $type = $current['type']; 
    $reason = $current['reason']; 

} 

我之所以环是因为有一个数组(使用Javascript方式,我认为)内的对象。

+0

我试图使用json_decode,但它不会让我。我得到这个消息:警告:json_decode()期望参数1是字符串,数组给出 –

+0

@ Alex.M.K哦...那么这意味着你可以跳过解码步骤,因为它不再是json字符串。这是一个数组(可能在某处解码)。你可以跳到foreach步骤。或者在这种情况下使用元素零。而是循环通过它。 – Touch

1

使用json_decode到JSON对象转换为阵列;然后使用foreach循环访问阵列。这应该工作。

<?php 
    $arr_json = json_decode($formulars); 
    foreach($arr_json as $key => $value) 
     //Code to perform required actions 
?> 

这应该给你一些想法。

0

使用json_decode(与TRUE获取关联数组)将您的JSON对象转换为关联数组。之后,您可以使用foreach循环遍历多维数组并打印所需的值。

代码:

$json = json_decode($string, true); 

foreach ($json as $key => $value) { 
    foreach($value as $key2 => $value2) { 
    echo $value2."\n"; 
    } 
} 

Working Demo!