PHP - 将多个对象添加到数组中

时间:2016-01-07 13:28:51

标签: php arrays

示例数据

我有以下对象数组示例:

array(2) {
  [0]=>
  object(RData)#2 (6) {
    ["DateOfBirth"]=>
    string(10) "1985-01-01"
    ["FirstName"]=>
    string(4) "john"
  }
  [1]=>
  object(RData)#3 (6) {
    ["DateOfBirth"]=>
    string(10) "1980-12-12"
    ["FirstName"]=>
    string(4) "jane"
  }
}

这个数组是通过基本连接两个对象构建的,如下所示:

$rArray = array(
                    $rData,
                    $rData2
                );

问题

我如何按顺序构建它?一块一块(因为末端阵列有很多变化)......

我试过了:

$rArray = array( $rData );
array_push( $rArray, $rData2 );

无法正常工作,推送覆盖当前对象,预期

也尝试过:

$rArray = array_merge( $rData, $rData2 )

没有用,预计,它们是对象而不是数组

1 个答案:

答案 0 :(得分:1)

首先,那个:

$rArray = array(
            $rData,
            $rData2
          );

它不是一个对象的连接,它只是一个数组的创建,有两个不同的对象,如:

$rArray = array();    // create array
$rArray[] = $rData;   // add first object
$rArray[] = $rData2;  // add second object

您的代码创建一个PHP array,包含两个PHP objects($ rData和$ rData2); 您可以使用数组的id访问您的对象:

$rArray[0] // call the $rdata object
$rArray[1] // call the $rdata2 object

访问对象属性:

 echo $rArray[0]->DateOfBirth // output : 1985-01-01

或者你可以迭代所有数组来创建一个html表(它是一个样本)

<?php 
    $table = '<table><tbody>';

    foreach($rArray as $person){
        $table .=  '<tr><td>'.$person->FirstName.'</td><td>'.$person->DateOfBirth .'</td></tr>';
    }

    $table .= '</tbody></table>';

    echo $table; // display the HTML table.
?>

foreach的输出是:

<table>
  <tbody>
    <tr>
        <td>john</td>
         <td>1985-01-01</td>
    </tr>
    <tr>
        <td>jane</td>
        <td>1980-12-12</td>
    </tr>
  </tbody>
</table>

PHP Array和对象有其他问题吗?