从CakePHP的find()返回数组访问数据

时间:2012-10-03 21:16:14

标签: php arrays cakephp

以下是CakePHP的find()方法返回的数组示例:

Array 
(
    [Tutor] => Array 
    ( 
        [id] => 2 
        [PersonaId] => 1 
    ) 
)

官方文档显示了如何获取记录,但没有显示如何迭代它们甚至读出单个值。我有点迷失在这一点上。我正在尝试获取数组中的[id]值。这是我尝试过的:

// $tutor is the array.
print_r($tutor[0]->id);
  

注意(8):未定义的偏移量:0   [APP \ Controller \ PersonasController.php,第43行]

     

注意事项(8):尝试   获取非对象的属性[APP \ Controller \ PersonasController.php,   第43行

我也试过了:

// $tutor is the array.
print_r($tutor->id);
  

注意(8):试图获取非对象的属性[APP \ Controller \ PersonasController.php,第44行]

2 个答案:

答案 0 :(得分:1)

在对象中使用->访问属性的方式。你向我们展示的是一个阵列。在该示例中,访问id将需要

$tutor['Tutor']['id']

官方PHP文档,“Accessing array elements with square bracket syntax”:

<?php
$array = array(
    "foo" => "bar",
    42    => 24,
    "multi" => array(
         "dimensional" => array(
             "array" => "foo"
         )
    )
);

var_dump($array["foo"]); //"bar"
var_dump($array[42]); //24
var_dump($array["multi"]["dimensional"]["array"]); //"foo"
?>

答案 1 :(得分:0)

返回的值是一个数组,而不是一个对象。这应该有效:

echo $tutor['Tutor']['id'];

或者:

foreach($tutor as $tut){
    echo $tut['Tutor']['id'] . '<br />';
}