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 に答える