拥有一个对象数组,如何从下面打印的对象数组中获取测验值? ( [quiz] => 5223)
Array (
[128593] => stdClass Object (
[id] => 128593
[uniqueid] => 130738
[quiz] => 5223
[userid] => 2
[attempt] => 1
[timestart] => 1382638443
[timefinish] => 0
[timemodified] => 1382638443
)
)
答案 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);