0

こんにちは、この json でエンコードされた配列をループして、オブジェクトごとにそのすべての値を取得する方法がわかりません。各値をそれ自体の変数として必要です。

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'];

}

前もって感謝します

4

3 に答える 3

1

配列内にオブジェクトがあるようです。そのため、配列をループして各オブジェクトを取得する必要があります。以下のように、エンコードされた文字列を 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の方法だと思います)。

于 2013-08-22T16:09:33.403 に答える
1

json_decodejson オブジェクトを配列に変換するために使用します。次にforeach、配列をループするために使用します。それはうまくいくはずです。

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

これにより、いくつかのアイデアが得られるはずです。

于 2013-08-22T16:09:57.417 に答える
0

JSON オブジェクトを連想配列に変換するには、json_decode(連想配列を取得するために) を使用します。TRUEその後、foreach ループを使用して多次元配列を走査し、必要な値を出力できます。

コード:

$json = json_decode($string, true);

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

ワーキングデモ!

于 2013-08-22T16:10:27.237 に答える