Я столкнулся с проблемой, несколько дней назад у меня было этот проблема, которая решена, но когда я получал данные, это был объект, поэтому с помощью приведенного ниже кода я преобразовал его в массив, но теперь, когда я пытаюсь получить доступ к массиву, я получаю 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
Я смотрел на оба вопроса и обнаружил, что вы можете сделать это без создания объектов. Так что вам не нужно 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;
}
Других решений пока нет …