【问题标题】:Not able to access object inside array in php无法在php中访问数组内的对象
【发布时间】:2017-01-06 14:31:46
【问题描述】:

我希望访问数组中的对象,下面给出了数组的示例格式,

Array
(
    [0] => stdClass Object
        (
            [id] => 1
            [user_id] => 3
            [adminid] => 1
            [payment_value] => 
        )

    [1] => stdClass Object
        (
            [id] => 2
            [user_id] => 3
            [adminid] => 2
            [payment_value] => 
        )

    [2] => stdClass Object
        (
            [id] => 3
            [user_id] => 4
            [adminid] => 3
            [payment_value] => 
        )
)

我希望从上面的数组中获取所有 user_id ,在这个数组中它将是:

3
3
4

但是正如你所看到的,在 2 个对象中 user_id 的值是相同的,所以在这种情况下,我想进一步过滤并只取 1 个值,所以我想要从数组中得到的最终结果应该是

3
4

我不知道如何消除重复值,但是我试图用来获取第一部分的代码是

print_r($rdata) // this gives the above sample array

foreach ($rdata as $key) 
    {
        $userid = $key->user_id;

        $this->db->where('id',$userid);
        $query = $this->db->get('user');
        return $query->result();
    }

通过使用上面的代码,我得到的结果是 3,但是我想要 3 和 4

【问题讨论】:

    标签: php arrays object


    【解决方案1】:
    $data_collection = [
            (object)[
                "id" => 1,
                "user_id" => 3,
                "adminid" => 1,
                "payment_value" =>""
            ],
            (object)[
                "id" => 2,
                "user_id" => 3,
                "adminid" => 2,
                "payment_value" =>""
            ],
            (object)[
                "id" => 3,
                "user_id" => 4,
                "adminid" => 3,
                "payment_value" =>""
            ]
    ];
    
    $user_id= [];
    $i=0;
    foreach ($data_collection as $single_data) {
        $user_id[$i]= $single_data->user_id;
        $i++;
    }
    $user_id = array_unique($user_id);
    /**
     * I don't knwo what this code does to you
     */
    $data_to_be_returned = [];
    foreach ($user_id as $single_user_id) {
        $this->db->where('id',$single_user_id);
        $query = $this->db->get('user');
        $data_to_be_returned = [$single_user_id => $query->result()];
    }
    

    你不能在 foreach 循环中返回

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-13
      • 1970-01-01
      • 2016-02-02
      • 2017-12-31
      相关资源
      最近更新 更多