PHP array_push () неправильно помещает объект в другой массив перед - PullRequest
0 голосов
/ 23 мая 2019

Я зацикливаюсь на некоторых данных и динамически создаю объект, который хочу вставить в массив.

$messageObj = new stdClass(); $recipientsObj = new stdClass();
$messageObj->message_recipients = Array();

$size = count($results);
for( $j = 0; $j < $size; $j++ ) {
    $recipientsObj->recipient_name = $results[$j]['recipient_name'];
    $recipientsObj->phone_number = $results[$j]['phone_number'];

    var_dump(json_encode($recipientsObj)); // DUMP 1

    array_push($messageObj->message_recipients, clone $recipientsObj);

    var_dump($messageObj->message_recipients); // DUMP 2
}

ПРОБЛЕМА

// DUMP 1 выходыожидаемые данные - например,

string(55) "{"recipient_name":"JOHN DOE","phone_number":"123456789"}"

Но когда я помещаю объект в массив, объект выдвигается как массив, поэтому я получаю:

[ [{...}], [{...}], [{...}] ]  // DUMP 2

вместо

[ {...}, {...}, {...} ]

Что может быть причиной этого?Я толкаю это неправильно?

1 Ответ

1 голос
/ 23 мая 2019

Отследил ошибку до части кода, где я выполнял array_chunk на message_recipients и помещал порцию в массив ($messageObj->message_recipients), что привело к проблеме в вопросе.

Так что я просто решил это, приравнив $messageObj->message_recipients к чанку вместо array_push(), так как это уже массив.

...