4

次のようなjson文字列があります。

$fields_string = '
{"fields":
   {"customers":[{"name":"john","id":"d1"},
                 {"name":"mike","id":"d2"},
                 {"name":"andrew","id":"d3"},
                 {"name":"peter","id":"d4"}]
   }
}'

それぞれの名前を印刷するにはどうすればよいですか? 後でそれらを html 選択オプションで使用します。その方法は知っています。でも糸が抜けませんでした。ここに私が試したことがあります:

$obj = json_decode($fields_string);
$fields_detail = $obj-?{"fields"}->{"customers"};

この時点で、顧客配列を で出力できますがecho json_encode($fields_detail)、その前に、 を使用して名前を分解したいと考えていますforeach。何度か試しましたが、うまくいきませんでした。誰でも助けてください。

ありがとう!

4

4 に答える 4

5

Customers はオブジェクトの配列であるため、各オブジェクトの反復処理とプロパティの読み取りが機能するはずです。

foreach ($fields_detail as $customer) {
  echo $customer->name;
}
于 2013-02-21T11:19:19.317 に答える
3

このようなもの:

$data = json_decode($fields_string, true); // return array not object
foreach($data['fields']['customers'] as $key => $customer) {
 echo $customer['name']; 
}
于 2013-02-21T11:21:04.800 に答える
1

次の方法で名前にアクセスしますfields->customers

$obj = json_decode($fields_string);

foreach($obj->fields->customers as $customer)
{
    echo $customer->name . "\n";
}

デモ

于 2013-02-21T11:29:25.297 に答える
0
foreach($obj->fields->customers as $fields)
echo $fields->name;
于 2013-02-21T11:23:05.953 に答える