1

下面是一个由 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 行]

4

2 回答 2

1

在对象中使用访问属性的->方式。您向我们展示的是一个数组。在那个例子中,访问 id 需要

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

PHP 官方文档,“使用方括号语法访问数组元素”:

<?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"
?>
于 2012-10-03T21:19:24.433 回答
0

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

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

或者:

foreach($tutor as $tut){
    echo $tut['Tutor']['id'] . '<br />';
}
于 2012-10-03T21:18:11.407 回答