0

有一个对象数组,我如何从下面打印的对象数组中获取测验值?( [quiz] => 5223)

Array (
    [128593] => stdClass Object  (
            [id] => 128593
            [uniqueid] => 130738
            [quiz] => 5223
            [userid] => 2
            [attempt] => 1
            [timestart] => 1382638443
            [timefinish] => 0
            [timemodified] => 1382638443
        )
)
4

4 回答 4

6
echo $array[128593]->quiz;

在数组内部你有一个对象,所以你需要使用它来访问它的属性->

于 2013-10-25T12:07:32.950 回答
3

其实很简单:

$quiz = $array[128593]->quiz;

编辑一些背景:

简单地说,数组就是一个列表,您可以在其中使用键访问它的值。假设您有以下数组:

$names[1] = 'Berry';
$names[8] = 'John';
echo $names[1]; // this line outputs Berry

第一个元素(名称为“Berry”)的键是数字 1,第二个元素的键是 8。

数组的值实际上可以是一切;一个布尔值、整数、字符串、对象,甚至另一个数组。所以以下都是正确的:

$array[1] = 1; // an integer
$array[2] = true; // a boolean
$array[3] = new stdClass; // an object of class stdClass
$array[4] = array(1 => 'the first value');

您已经知道如何访问数组值。现在看示例 4(数组中的数组)。要访问它的元素,您将使用:

echo $array[4][1]; // outputs "the first value"

这相当于

$my_element = $array[4];
echo $my_element[1];

回到您的案例:您首先需要访问保存测验信息的数组元素,如下所示:

$quiz_element = $array[128593];

然后获取对象的“测验”属性:

echo $quiz_element->quiz;

简而言之,那就是:

echo $array[128593]->quiz;

所以是的,这非常正确:要访问某个数组元素,您需要传递它的键(您称为 id),而要获取对象的属性,只需给出属性名称即可。

于 2013-10-25T12:08:11.707 回答
1

尝试这个:

echo($array[128593]->quiz);
于 2013-10-25T12:07:52.947 回答
1

如果数组始终是一个具有未知 id 的元素(我将数组称为 $result)

$obj = array_pop($result);
echo($obj->quiz);
于 2013-10-25T12:08:50.577 回答