2012-11-08 67 views
0

我需要重建一个数组。原来这里是数组:PHP重构阵列

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]); 
     } 
     } 
+0

是的。但是你需要编写自己的代码来完成这个任务。也就是说,没有单一的,神奇的PHP函数。 –

+0

当然,这是可能的。你试过什么了?我们不在这里为你做你的工作,所以显示你的尝试。 –

+0

我尝试使用的代码。 –

回答

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

+0

哇...非常感谢! –

0

如果你有一定的载体cointains对L_TRANSACTIONIDn/L_STATUSn键,也就是说,对于每个事务ID,都有一个相应的状态,你可以做的是获取id /状态记录的数目(它应该等于初始数组的长度,除以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 
    ); 
} 

希望这有助于。祝你有美好的一天!