PHP stdClass Объект с массивом внутри

У меня есть этот массив. Я попробовал несколько вещей, но не получил то, что хочу.
Я пробовал цикл foreach, но он, кажется, не делает это легко, и процесс занимает много времени.

stdClass Object
(
[data] => Array
(
[0] => stdClass Object
(
[display_number] => 100140
[client] => stdClass Object
(
[name] => TAUQIR SHEIKH ET AL
)

)

[1] => stdClass Object
(
[display_number] => 100141
[client] => stdClass Object
(
[name] => YOLANDA SHEIKH ET AL
)

)

Я хочу, чтобы это был один простой массив

[0] => Array
(
[0] => 100140
[1] => TAUQIR SHEIKH ET AL
)

[1] => Array
(
[0] => 100141
[1] => YOLANDA SHEIKH ET AL
)

Итак, старый код работает, но теперь они обновили API, и это сделало его еще хуже. Ответ сейчас

(
[data] => Array
(
[0] => stdClass Object
(
[data] => Array
(
[0] => stdClass Object
(
[display_number] => 100140
[client] => stdClass Object
(
[name] => TAUQIR SHEIKH ET AL
)

)

[1] => stdClass Object
(
[display_number] => 100141
[client] => stdClass Object
(
[name] => YOLANDA SHEIKH ET AL
)

)

Я попробовал это с новым кодом … Но массив пуст. Куда я иду не так?

//clean and make into an array
$matter_array = array();
if(!empty($response_Decode->data->data) &&
is_array($response_Decode->data->data)) {
foreach ($response_Decode->data->data as $info) {
$d = array();
$d[] = $info->display_number;
$d[] = $info->client->name;
$matter_array[] = $d;
}
}

print_r($matter_array);  //For testing
die(); //For testing

1

Решение

Я бы порекомендовал спросить, кто / какой процесс сначала заполняет ваш набор данных, и, возможно, настроить его там.

Если нет в наличии, то петля обязательна.

$results = array();
if(!empty($object->data) && is_array($object->data)) {
foreach ($object->data as $info) {
$d = array();
$d[] = $info->display_number;

if(!empty($object->client)) {
$d[] = $object->client->name;
}

$results[] = $d;
}
}

print_r($results);

Я параноик с пустым (). Код не проверен, но должен привести вас на правильный путь.

2

Другие решения

ТАК вы были близки … Спасибо.

//clean and make into an array
$matter_array = array();
if(!empty($resp->data) && is_array($resp->data)) {
foreach ($resp->data as $info) {
$d = array();
$d[] = $info->display_number;
$d[] = $info->client->name;
$matter_array[] = $d;
}
}

print_r($matter_array)
0

Хорошо, я просто упростил массив … И ЭТО РАБОТАЕТ!

//clean and make into an array
$response_Decode=$response_Decode->data;
$response_Decode=$response_Decode[0];
//print_r ($response_Decode);
//die(); //For testing
$matter_array = array();
if(!empty($response_Decode->data) && is_array($response_Decode->data)) {
foreach ($response_Decode->data as $info) {
$d = array();
$d[] = $info->display_number;
$d[] = $info->client->name;
$matter_array[] = $d;
}
}
0
По вопросам рекламы [email protected]