0

私はこの情報から情報を取得しようとしています:

Array (
    [result] => success
    [totalresults] => 1
    [startnumber] => 0
    [numreturned] => 1 
    [tickets] => Array (
        [ticket] => Array (
            [0] => Array (
                [id] => 7
                [tid] => 782755
                [deptid] => 1
                [userid] => 39
                [name] => Mark Lønquist
                [email] => mark.loenquist@outlook.com
                [cc] => 
                [c] => 79rzVBeJ
                [date] => 2013-04-25 16:14:24
                [subject] => test
                [status] => Open
                [priority] => Medium
                [admin] => 
                [attachment] => 
                [lastreply] => 2013-04-25 16:14:24 
                [flag] => 0
                [service] => 
            )
        )
    )
)

結果は次を使用して出力されます。

print_r($results);

通常、私は簡単なことをすることができました:

$var = $results['something'];

それを取り出すには、これではうまくいきません:(どんな助けも大歓迎です。

4

2 に答える 2

1

貼り付けた配列を再フォーマットすると、いくつかの要素が数レベルの深さでネストされていることが明らかになります。(これは「多次元配列」です。ドキュメントの例 #6を参照してください。) そのような場合、必要な深さに到達するために、連続する各キーを含むブラケットを追加する必要があります。たとえば、$results配列のサンプル:

Array (
    [result] => success
    [totalresults] => 1
    ...
    [tickets] => Array (
        [ticket] => Array (
            [0] => Array (
                [id] => 7
                [tid] => 782755
                ...
            )
        )
    )
)

$results['totalresults']"totalresults" にアクセスするには単に do を実行する必要がありますが、"tid" を取得するには を使用する必要があります$results['tickets']['ticket'][0]['tid']


複数のチケットがあるときにすべてのチケットから「tid」を取得したい場合は、チケットの配列を反復処理 (ループ) する必要があります。おそらく次のようなものです(テストされていませんが、理解するのに十分近いはずです):

foreach ($results['tickets']['ticket'] as $ticket) {
    echo $ticket['tid'];
}
于 2013-04-26T21:05:49.053 に答える
0

問題が何であるかを確認するには、コードの先頭にprint_r()追加することができます。error_reporting(E_ALL);

「totalresults」などのキーの値を取得する場合は、それで$results['totalresults']十分であることに注意してください。

ただし、ネストされた配列のいずれかからキーを取得する場合emailは、を使用する必要があります$results['result']['tickets']['ticket'][0]['email']

于 2013-04-26T01:44:27.223 に答える