0

現在、Adobe Echosign API を使用して、テーブル内の一部のデータをフォーマットしています。出力は次のようになります。

{
  "agreementId": "",
  "events": [
    {
      "actingUserEmail": "",
      "actingUserIpAddress": "",
      "date": "date",
      "description": "",
      "participantEmail": "",
      "type": "",
      "versionId": ""
    }
  ],
  "locale": "",
  "modifiable": false,
  "name": "",
  "nextParticipantSetInfos": [
    {
      "nextParticipantSetMemberInfos": [
        {
          "email": "",
          "waitingSince": "date"
        }
      ]
    }
  ],
  "participantSetInfos": [
    {
      "participantSetId": "",
      "participantSetMemberInfos": [
        {
          "email": "",
          "participantId": ""
        }
      ],
      "roles": [
        ""
      ],
      "status": ""
    }
  ],
  "status": "",
  "vaultingEnabled": false
}

複数の契約をループしていますが、これはそれぞれを個別の配列として出力します。

これはおそらく非常に基本的な質問ですが、各配列を調べて「participantEmail」、「name」、および「status」の値を抽出するにはどうすればよいでしょうか?

ありがとう!

4

2 に答える 2

0

提供した形式の契約の配列があると仮定すると、次のようなことができます。

<?php

$json = '[{
  "agreementId": "",
  "events": [
    {
      "actingUserEmail": "",
      "actingUserIpAddress": "",
      "date": "date",
      "description": "",
      "participantEmail": "an email",
      "type": "",
      "versionId": ""
    }
  ],
  "locale": "",
  "modifiable": false,
  "name": "a name",
  "nextParticipantSetInfos": [
    {
      "nextParticipantSetMemberInfos": [
        {
          "email": "",
          "waitingSince": "date"
        }
      ]
    }
  ],
  "participantSetInfos": [
    {
      "participantSetId": "",
      "participantSetMemberInfos": [
        {
          "email": "",
          "participantId": ""
        }
      ],
      "roles": [
        ""
      ],
      "status": "a status"
    }
  ],
  "status": "",
  "vaultingEnabled": false
}]';

$parsed = json_decode($json, true);

$names = [];
foreach($parsed as $agreement) {

    $names[] = $agreement['name'];

    $emails = []; 
    foreach($agreement['events'] as $event) {
        $emails[] = $event['participantEmail'];
    }

    $status = []; 
    foreach($agreement['participantSetInfos'] as $participant) {
        $status[] = $participant['status'];
    }

}

var_dump($names);
var_dump($emails);
var_dump($status);

もちろん、空の値などをチェックする必要がありますが、アイデアを提供するだけです。名前、ステータス、メールの関係を明確にしていないので、別々の配列に取りましたが、それは配列処理で修正できないものではありません。

お役に立てれば!

于 2016-10-19T14:58:02.937 に答える