2013-10-25 89 views
-1

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

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

笑@ 3个完全一样的答案,30秒之内;),而 – giorgio

回答

3

很容易的实际上是:

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

编辑一些背景:

数组是简单地说,一个列表,您可以通过使用该键访问它的值。比方说,你有以下阵列:

$names[1] = 'Berry'; 
$names[8] = 'John'; 
echo $names[1]; // this line outputs 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(数组内的数组)。要访问它的元素你会使用:这相当于

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

回到你的情况

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

:你首先需要访问数组元素牵着你的竞猜信息,像这样:

$quiz_element = $array[128593]; 

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

echo $quiz_element->quiz; 

而在短期,这将是:

echo $array[128593]->quiz; 

所以,是的,它几乎是正确的:访问你需要通过它的密钥(你叫ID)一定的数组元素,并获得的属性对象可以给出属性名称。

+0

非常感谢!这是正确的说,你需要传递数组的id,所以属性名称来获取属性值? –

+1

谢谢,我现在对PHP的数组有了更好的理解。克里斯塔尔明确! –

6
echo $array[128593]->quiz; 

数组里面你有一个对象,所以你需要使用->

1

试试这个来访问它的属性:

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

为什么后相同的答案比给予好评现有? :\ –

+0

我们在同一时间或之后发布了一段时间..如果您看到@AlmaDoMundo –

+0

可能是因为我们都在同时写入我们的答案;) – giorgio

1

如果数组总是一个元件都具有未知ID(我称为数组$结果)

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