如何从对象数组中获取值?

时间:2013-10-25 12:05:09

标签: php arrays object

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

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

4 个答案:

答案 0 :(得分:6)

echo $array[128593]->quiz;

在数组中,您有一个对象,因此您需要使用->

访问其属性

答案 1 :(得分: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];

然后获取对象的'quiz'属性:

echo $quiz_element->quiz;

简而言之,那就是:

echo $array[128593]->quiz;

所以是的,它非常正确:要访问某个数组元素,你需要传递它的密钥(你称之为id),并且获取对象的属性只能给出属性名称。

答案 2 :(得分:1)

试试这个:

echo($array[128593]->quiz);

答案 3 :(得分:1)

如果数组总是一个id未知的元素(我称之为数组$ result)

$obj = array_pop($result);
echo($obj->quiz);