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"
      }
}

请注意,KEYS 都与数字表示匹配......这可能吗?

编辑:

这是我正在使用的代码:

        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 键,也就是说,对于每个 transactionID,都有一个对应的状态,你可以做的是获取 id/status 记录的数量(应该等于长度的初始数组,除以 2),并通过增加当前元素计数组成结果键。

可能看起来像这样:

$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 回答