Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在codeigniter中访问stdClass对象数组_Php_Arrays_Codeigniter - Fatal编程技术网

Php 如何在codeigniter中访问stdClass对象数组

Php 如何在codeigniter中访问stdClass对象数组,php,arrays,codeigniter,Php,Arrays,Codeigniter,我有以下print\r($rolePermissions)数组结果,不知道如何仅动态访问permID Array ( [0] => Array ( [0] => stdClass Object ( [roleID] => 1 [permID] => 1 ) [1] => stdClass Object ( [roleID] => 1 [permID] => 2 ) [2] => stdClass Object ( [roleID] => 1

我有以下
print\r($rolePermissions)数组结果,不知道如何仅动态访问
permID

 Array ( [0] => Array ( [0] => stdClass Object ( [roleID] => 1 [permID] => 1 ) [1] => stdClass Object ( [roleID] => 1 [permID] => 2 ) [2] => stdClass Object ( [roleID] => 1 [permID] => 3 ) [3] => stdClass Object ( [roleID] => 1 [permID] => 4 ) [4] => stdClass Object ( [roleID] => 1 [permID] => 5 ) [5] => stdClass Object ( [roleID] => 1 [permID] => 6 ) [6] => stdClass Object ( [roleID] => 1 [permID] => 7 ) [7] => stdClass Object ( [roleID] => 1 [permID] => 8 ) [8] => stdClass Object ( [roleID] => 1 [permID] => 9 ) [9] => stdClass Object ( [roleID] => 1 [permID] => 10 ) [10] => stdClass Object ( [roleID] => 1 [permID] => 11 ) [11] => stdClass Object ( [roleID] => 1 [permID] => 12 ) [12] => stdClass Object ( [roleID] => 1 [permID] => 13 ) [13] => stdClass Object ( [roleID] => 1 [permID] => 14 ) [14] => stdClass Object ( [roleID] => 1 [permID] => 15 ) [15] => stdClass Object ( [roleID] => 1 [permID] => 16 ) [16] => stdClass Object ( [roleID] => 1 [permID] => 17 ) [17] => stdClass Object ( [roleID] => 1 [permID] => 18 ) [18] => stdClass Object ( [roleID] => 1 [permID] => 19 ) [19] => stdClass Object ( [roleID] => 1 [permID] => 20 ) [20] => stdClass Object ( [roleID] => 1 [permID] => 21 ) [21] => stdClass Object ( [roleID] => 1 [permID] => 22 ) [22] => stdClass Object ( [roleID] => 1 [permID] => 23 ) [23] => stdClass Object ( [roleID] => 1 [permID] => 24 ) ) [1] => Array ( [0] => stdClass Object ( [roleID] => 2 [permID] => 2 ) [1] => stdClass Object ( [roleID] => 2 [permID] => 3 ) [2] => stdClass Object ( [roleID] => 2 [permID] => 4 ) ) [2] => Array ( [0] => stdClass Object ( [roleID] => 3 [permID] => 4 ) ) [3] => Array ( ) ) 
我正在使用以下代码访问:

$rolePermission[0]->permID
但我无法获得所有记录,因为每次的结果都可能不同,而索引0是不可行的方法。它显示一些记录和其他记录中的弹出错误

Error messages:
Undefined offset: 0
Message: Trying to get property of non-object

有什么帮助吗?

在阵列上循环:

$ids = array();
foreach($rolePermission as $permissionObject){
    $ids[] = $permissionObject->permID;
}
或在访问密钥之前检查密钥是否存在:

if(isset($rolePermission[0])) {
    $id = $rolePermission[0]->permID;
}

注意:当您使用
print_r()
时,当您从数据库中提取值时,它将在CI中输出带有
stdClass对象的数组

有一种解决方案可以在迭代时不使用
stdClass对象来显示数组

<强>实例:<>强>考虑<代码> $< < /COD> >考虑数组,而使用<代码> PrimtRE()>代码>它显示 STDC类对象< /C> >p>

  • 您必须按如下方式使用循环,以避免打印时出现
    stdClass对象
代码:

此代码可用于使用控制器和模型从DB检索的值

如果从数据库检索到输出的单行


如果从数据库检索到多行输出


如果在foreach中使用`->result()`来获取值,那么模型代码应该是什么样子 如果您使用上述方法检索输出,那么您的模型应该是这样的示例

employee_model.php

<?php
class Employee_model extends CI_Model{
function __construct() {
parent::__construct();
}

public function getEmployees()
{
    $this->db->select('*');
    $this->db->from('employee');
    $this->db->where('delete_status','0');
    $this->db->where('status','1');
    $this->db->order_by('id','DESC');
    $query = $this->db->get();
    return $query;
}
?>

如何从控制器调用模型
在模型中编写此代码。最后一行将仅获取expire列的值,并将传递给控制器。然后您可以从表单视图访问它

 function album_expire($user_id ,$album_iid)
{
  $this->db->select('expire');
  $this->db->from('mw_album');
  $this->db->where('user_id', $user_id); 
  $this->db->where('id', $album_iid); 
  return $this->db->get()->row()->expire;
}
在控制器中,将值传递给视图

$data['album_expire'] = $this->albums_model->album_expire($user_id ,$album_iid);
在视图中,您可以这样访问它

<?php echo $album_expire; ?>


具体来说,您可能想看看is_a也:,您可以检查对象是否是stdClass,我建议使用
instanceof
语句,而不是
is_a
语句。例如:
$rolePermission[0]实例stdClass
为您提出的请求提供了解决方案。试着分享一下你的想法。
 function album_expire($user_id ,$album_iid)
{
  $this->db->select('expire');
  $this->db->from('mw_album');
  $this->db->where('user_id', $user_id); 
  $this->db->where('id', $album_iid); 
  return $this->db->get()->row()->expire;
}
$data['album_expire'] = $this->albums_model->album_expire($user_id ,$album_iid);
<?php echo $album_expire; ?>