php合并2个数组

时间:2013-02-27 09:17:33

标签: php arrays

我有2个2D数组,其中包含从数据库返回的值。

目前我正在进行foreach循环并将返回的值放到每个数组的单独表中:

例如:

 <table>
    <tr>
      <td>Auto Bavaria Midrand BMW</td>
      <td>63</td>
      <td>39</td>
    </tr>
    ...
</table>
<table>
<tr>
  <td>Auto Bavaria Midrand BMW</td>
  <td>40</td>
  <td>15</td>
  ...
</tr>
</table>

但是我需要以这种格式返回值,只有一个表:

<table>
  <tr>
    <td>Auto Bavaria Midrand BMW</td>
    //the name of the record does not need to be repeated, only the values
    <td>63</td>
    <td>39</td>
    <td>40</td> //values from 2nd array
    <td>15</td> // values from 2nd array
  </tr>
        ...//next record set
</table>

Array
(
    [0] => Array
        (
            [DealerName] => Auto Bavaria Midrand BMW
            [dealersContacted] => 63
            [DealerContact_Y] => 39
            [DealerContact_N] => 15
            [DealerShipId] => 21730
            [DataId] => 23527
        )
     //extra returned records 
)

Array
(
    [0] => Array
        (
            [DealerName] => Auto Bavaria Midrand BMW
            [dealersContacted] => 65
            [DealerContact_Y] => 40
            [DealerContact_N] => 15
            [DealerShipId] => 21730
            [DataId] => 23527
        )

   //extra returned records 
)

我可以做它的php方面,我的问题是,是否有一个数组函数只能合并数组所需的位?我已经搜索过,而且越来越困惑。

1 个答案:

答案 0 :(得分:0)

在从数据库中提取时,您应该更改构建数组的方式,这样您就可以得到一个有意义的键而不是无意义的数字索引。在上面的示例中,您可能希望使用DealerName作为键。这样,当您检索项目时,只需将它们添加到适当的位置即可。例如:

 while($rows = fetch_from_db($res)) {
    $output[$rows['DealerName']]['dealersContacted'] = $rows['dealersContacted'];
    $output[$rows['DealerName']]['DealerContact_Y']  = $rows['DealerContact_Y'];
    // Add more keys here
 }

当你完成两个结果集的检索时,你只剩下一个数组。您还应该计划如何处理双重索引,例如您的示例中的dealerContacted。