0

このスニップの目標は、リソースを記述する配列の配列をループすることでした。次に、キャプション情報の配列をループします。それらが一致する場合は、そのキャプションをこのresource_nodeインデックスに追加します。

1つ目echo print_r($resource);は「caption」インデックスキーを持っています。

2番目echo print_r($this->resource_nodes);はキャプションキーを表示しません。

このスニップで何がうまくいかないのかわかりません。

foreach ($this->resource_nodes as $resource) {
    foreach ($this->captions as $caption) {
        if ($resource['attachment id'] === $caption['id']) {
            $resource['caption'] = $caption['content'];
            echo print_r($resource);
        }
    }
}
echo print_r($this->resource_nodes);

比較echoは機能します。したがって、キャプションがいくつかの配列に割り当てられており、ループ実行後にキャプションが欠落していることを除いて、配列は同一であることがわかります。

何がこれを引き起こしているのか考えていますか?

4

1 に答える 1

0

$resource 変数は、参照ではなく値によって設定されています。試す:

foreach ($this->resource_nodes as &$resource) {

「&」に注意してください。

于 2012-12-27T19:11:24.807 に答える