0

配列を再構築する必要があります。元の配列は次のとおりです。

array(8) {
      [0] => array(1)
      {
            ["L_TRANSACTIONID0"] => string(17) "62M97388AY676841D"
      }

      [1] => array(1)
      {
            ["L_TRANSACTIONID1"] => string(17) "9FF44950UY3240528"
      }

      [2] => array(1)
      {
            ["L_STATUS0"] => string(9) "Completed"
      }

      [3] => array(1)
      {
            ["L_STATUS1"] => string(9) "Completed"
      }
}

私はそれをそのように再構築したいと思います:

array(2) {
      [0] => array(2)
      {
            ["L_TRANSACTIONID0"] => string(17) "62M97388AY676841D"
            ["L_STATUS0"] => string(9) "Completed"
      }
      [1] => array(1)
      {
            ["L_TRANSACTIONID1"] => string(17) "9FF44950UY3240528"
            ["L_STATUS1"] => string(9) "Completed"
      }
}

キーは両方とも数値表現と一致することに注意してください...これは可能ですか?

編集:

これが私が使用している私のコードです:

        foreach($comparison as $key => $val) {
        $findme1 = 'L_TRANSACTID'.$i++;
        $findme2 = 'L_STATUS'.$c++;
        $arrDisable = array($findme1,$findme2);
        if( in_array($key, $arrDisable ) ) {
          unset( $comparison[ $key ][$val]);
        }
            if( in_array($key, $arrDisable) ) {
        unset( $comparison[ $key ][$val]);
        }
      }
4

2 に答える 2

1

これを試して

$labels = array('L_TRANSACTIONID', 'L_STATUS');
$res = array();
foreach($arr as $val) {
  $key = str_replace($labels, '', key($val));
  $res[$key] = isset($res[$key]) ? array_merge($res[$key], $val) : $val;
}
print_r($res);

http://codepad.org/MwqTPqtA

于 2012-11-08T16:49:00.073 に答える
0

ベクトルが L_TRANSACTIONIDn / L_STATUSn キーのペアを含んでいると確信している場合、つまり、各トランザクション ID に対応するステータスが存在する場合、できることは、ID/ステータス レコードの数を取得することです (これは長さに等しい必要があります)。現在の要素数を増やして、結果のキーを構成します。

次のようになります。

$numItems = sizeof($myInitialArray) / 2;
$newArray = array();

for($i = 0; $i < $numItems; $i++)
{
    $itemID = $i * 2; // since we're getting id/status pairs, we're using a step equal to 2

    $newArray[] = array(
        ("L_TRANSACTIONID" . $i) => $myInitialArray[$itemID], // this is the id value
        ("L_STATUS" . $i) => $myInitialArray[$itemID + 1] // this is the status for that id
    );
}

お役に立てれば。すてきな一日を!

于 2012-11-08T16:49:00.743 に答える