1

流れる配列は var $items (およびその他) に格納されます。

"c74a0dba-5407-4f90-b04e-fdc88c4dd434": {
"0": {
"value": "Suffolk"
}
},
"91866e91-70d7-405f-900c-475d0c027399": {
"country": {
"0": "GB"
}
},

私が使用できる配列を表示するには:

$county = json_decode($items); 
var_dump($county);

これは印刷します

[c74a0dba-5407-4f90-b04e-fdc88c4dd434"]=> object(stdClass)#24 (1) { ["0"]=> object(stdClass)#25 (1) { ["value"]=> string(15) "Suffolk" } } ["91866e91-70d7-405f-900c-475d0c027399"]=> object(stdClass)#26 (1) { ["country"]=> object(stdClass)#27 (1) { ["0"]=> string(2) "GB" } }

一意の識別子を使用して郡情報「サフォーク」を抽出する必要があります。

以下を試しましたが、サーバーエラーが発生します

$result_county = $county->getElement('c74a0dba-5408-4f90-b04e-fdc88c4dd434')->getElementData()->get('value');

以下は、配列全体の var_dump です。識別子c74a0dba-5408-4f90-b04e-fdc88c4dd434は、各アイテム配列で同じです。

object(stdClass)#2 (18) { ["4d612549-f4cd-4487-ba42-f091ece35391"]=> object(stdClass)#3 (1) { ["0"]=> object(stdClass)#4 (1) { ["value"]=> string(13) "East Newlem" } } ["5eb77708-72e8-4587-b65e-ee50eb0f9e6d"]=> object(stdClass)#5 (1) { ["0"]=> object(stdClass)#6 (1) { ["value"]=> string(24) "Hillside Estate" } } ["520720dc-c480-405a-ac56-bf317f48d860"]=> object(stdClass)#7 (1) { ["0"]=> object(stdClass)#8 (1) { ["value"]=> string(17) "11 Rees Drive" } } [ECT...

何か案は?

4

2 に答える 2

2

これを配列として次のように扱うと

$array = json_decode($items,true);
echo "<pre>",print_r($array,true),"</pre>"; 
$key ="c74a0dba-5408-4f90-b04e-fdc88c4dd434";
echo $array[$key][0]['value'];

以下のような配列構造が生成されます。

Array
(
    [4d612549-f4cd-4345-ba42-f091ece35391] => Array
        (
        [0] => Array
            (
            [value] => East Newlem
            )
        )
    [5eb77708-72e8-4676-b65e-ee50eb0f9e6d] => Array
        (
        [0] => Array
            (
            [value] =>Hillside Estate
            )
        )
)

2 番目の引数を true に設定するjson_decodedと、以前のオブジェクトではなく配列が返されます。私は配列よりもオブジェクトを好みますが、コンテキストとデータが表すもの (配列またはオブジェクト) がすべてです。

抽出後に複合オブジェクトがあるようです。stdClassプロセスは、非オブジェクトがオブジェクトに変換されるときに典型的な多数の objects( ) を生成しました。たとえば、サンプル配列がオブジェクトに変換される場合、生成されるオブジェクト (stdClass) には、キーとそれに対応する値によって名前が付けられたプロパティがあります。これがあなたがここで見ているものだと思います。

最初は、ほとんどが 3 つのキーで構成される x オブジェクトを保持するコンテナ オブジェクトがあり、そのうちの最初の 2 つはオブジェクト値を持ち、3 つ目は文字列値を持ちます。標準オブジェクトのような情報へのアクセス:

echo $county->{4d612549-f4cd-4487-ba42-f091ece35391}->{0}->value;

「East Newlem」が返されます (そうでない場合は、中括弧内の値を引用符で囲みます)。

オブジェクトに分割すると、データは次のようになります。

object(stdClass)#2 (18) {
["4d612549-f4cd-4487-ba42-f091ece35391"]=>
    object(stdClass)#3 (1) { ["0"]=>
        object(stdClass)#4 (1) { ["value"]=> string(13) "East Newlem" }
}
["5eb77708-72e8-4587-b65e-ee50eb0f9e6d"]=>
    object(stdClass)#5 (1) { ["0"]=>
        object(stdClass)#6 (1) { ["value"]=> string(24) "Hillside Estate" }
}

お役に立てれば

于 2013-01-29T09:19:02.290 に答える
1
$county = json_decode($items, true); /// which will give you array


foreach($county as $val){
   echo $val[0]['value'];
}
于 2013-01-29T09:19:58.470 に答える