0

こんにちは私はpaypalAPIでクエリを実行していますが、私の質問は配列とキーの値の取得(動的)に関するものです。次の配列が返されるため、クエリが機能し、クレデンシャルが適切であることがわかります。

array(2) {
["L_TRANSACTIONID0"]=>
string(17) "9FX81733DJ079610B"
["L_TRANSACTIONID1"]=>
string(17) "5E083945JC6368706"
["L_TRANSACTIONID2"]=>
string(17) "7SP75180Y9281954W"
}

foreachループで各キーを分割したいのですが、各キーは動的です(各キーのカウントに注意してください)。これはforeachループでどのように達成できますか?ありがとう、

4

1 に答える 1

2

先日、同じような質問に答えたので、重複している可能性があります。いずれにせよ、これが誰かを助けるなら、ここに行きます:

function process_response($str)
{
    $data = array();
    $x = explode("&", $str);

    foreach($x as $val)
    {
        $y = explode("=", $val);

        preg_match_all('/^([^\d]+)(\d+)/', $y[0], $match);

        if (isset($match[1][0]))
        {
            $text = $match[1][0];
            $num = $match[2][0];

            $data[$num][$text] = urldecode($y[1]);
        }
        else
        {
            $text = $y[0];
//          $data[$text] = urldecode($y[1]);
        }
    }

    return $data;
}

curl呼び出しの結果をこれにフィードし、結果をフォーマットされた配列として取得するだけです。

コメント化された行に注意してください。バージョンなどのグローバルなフィールドがいくつかあります。これらが必要な場合はコメントを外しますが、その後、いくつかのフォーマットコードを下流で調整する必要がある場合があります。

これを使用する方法の例として、これをPHPExcelオブジェクトにフィードしたい場合、次のように行うことができます。

    $response = your_curl_call($request);
    $data = process_response($response);

    $index = 1;
    foreach($data as $row)
    {
        $objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A'.$index, $row['L_TIMESTAMP'])
            ->setCellValue('B'.$index, $row['L_TIMEZONE'])
            ->setCellValue('C'.$index, $row['L_TYPE'])
            ->setCellValue('D'.$index, $row['L_EMAIL'])
            ->setCellValue('E'.$index, $row['L_NAME'])
            ->setCellValue('F'.$index, $row['L_TRANSACTIONID'])
            ->setCellValue('G'.$index, $row['L_STATUS'])
            ->setCellValue('H'.$index, $row['L_AMT'])
            ->setCellValue('I'.$index, $row['L_CURRENCYCODE'])
            ->setCellValue('J'.$index, $row['L_FEEAMT'])
            ->setCellValue('K'.$index, $row['L_NETAMT']);
        $index++;
    }
于 2013-05-25T13:57:26.160 に答える