неопределенная проблема индекса после приведения от объекта к массиву

Я столкнулся с проблемой, несколько дней назад у меня было этот проблема, которая решена, но когда я получал данные, это был объект, поэтому с помощью приведенного ниже кода я преобразовал его в массив, но теперь, когда я пытаюсь получить доступ к массиву, я получаю Undefined index уведомление.

контроллер

public function downline_income($userId = null, $offset = 0) {
$userId = user::id();
$limit = AZ::setting('record_per_page');
$objUser = new User_Object;
$objUser->id = $userId;
$downline = $this->user->getDownline($objUser);
$downline = $this->object_to_array($downline);
AZ::layout('left-content', array(
'block' => 'account/downline_income',
'user' => $userId,
'q' => $userId,
'data' => $downline,
));

public function object_to_array($obj) {
if (is_object($obj))
$obj = (array) $obj;
if (is_array($obj)) {
$new = array();
foreach ($obj as $key => $val) {
$new[$key] = $this->object_to_array($val);
}
} else
$new = $obj;
return $new;
}

когда var_dump в downline_income.php(Посмотреть) ниже вывод.

//code
$as = $data;
echo "<pre>";
print_r($as['User_Objectchildren']);

ВЫХОД

array(3) {
["User_Objectchildren"]=>
array(10) {
[0]=>
array(22) {
["User_Objectchildren"]=>
array(0) {
}
["level"]=>
int(1)
["id"]=>
string(4) "1147"["gid"]=>
string(1) "4"//
...

И на print_r

Array
(
[User_Objectchildren] => Array
(
[0] => Array
(
[User_Objectchildren] => Array
(
)

[level] => 1
[id] => 1147
[gid] => 4
[parent_id] => 1112
[username] => test 9
[email] => kapil789654@abc.com
[name] => test9
[status] => 0
[registerd] => 2017-04-20 09:03:10
[last_login] => 0000-00-00 00:00:00
[password] => 4eca045dfa240f56a1f9d45eaa53b71c6eccd6a7
[tranjection_password] =>
[package_id] => 6
[user_id] => 1147
[purchase_date] => 2017-04-20 09:03:11
[confirm_date] => 0000-00-00 00:00:00
[package_name] => USD 1000
[amount] => 1000
[daily_income] => 12
[total_income] => 600
[time_duration] => 60
)

[1] => Array
(
[User_Objectchildren] => Array
(
)

[level] => 1
[id] => 1146
[gid] => 4
[parent_id] => 1112
[username] => test8
.....

Когда попробуйте напечатать print_r($as['User_Objectchildren']);

Обнаружена ошибка PHP

Серьезность: Уведомление

Сообщение: неопределенный индекс: User_Objectchildren

Имя файла: account / downline_income.php

Номер строки: 43

0

Решение

Я смотрел на оба вопроса и обнаружил, что вы можете сделать это без создания объектов. Так что вам не нужно cast любой объект для массива. Вы получите простой std array,

следуйте приведенному ниже коду.

контроллер

public function downline_income($userId = null, $offset = 0) {
$userId = user::id();
$limit = AZ::setting('record_per_page');
$objUser = new stdClass();
$objUser->id = $userId;
$downline = $this->user->getDownline($objUser);

AZ::layout('left-content', array(
'block' => 'account/downline_income',
'user' => $userId,
'total_users' => $total_users,
'pagination' => $pagination,
'q' => $userId,
'data' => $downline,
'offset' => $offset,
));
}

public function getDownline($obj, $level = 0) {
$obj->level = $level;

$where = array('parent_id' => $obj->id);
$this->db->select('users.*');
$this->db->where($where);

$query = $this->db->get('users')->result();

foreach ($query as $objUser) {
$obj->data[] = $this->getDownline($objUser, ($level + 1));
}

return $obj;
}
0

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

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector