2016-01-07 3 views
-2

SAMPLE DATAPHP - Добавление нескольких объектов в массив

Я следующий массив примера объектов:

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) 

не работает, как ожидается, они объекты не массивы

+0

«Конкатенирование двух объектов» не имеет смысла. Вы помещаете два значения в массив, не более, не меньше. Ваш первый и второй пример кода должен быть идентичным. Непонятно, почему кто-то якобы не работает. - * "push overrode current object, expected" * - Нет, очень неожиданно. – deceze

+1

[norepo] (https://3v4l.org/NibJT), можете ли вы дать небольшой, но простой пример того, что не работает? – VolkerK

+0

Я не понимаю ваш вопрос? у вас уже есть два объекта по частям ... ('$ rdata' и' $ rdata2'), что бы вы сделали с нами? массив? –

ответ

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); Вы можете получить доступ к объекту с идентификатором массива так:

$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. 
?> 

Вывод Еогеасп является:

<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 и объектом?

Смежные вопросы