0

这个片段的目标是循环一组描述资源的数组。然后循环一组字幕信息。如果它们匹配,则将该标题添加到该resource_node索引中。

第一个echo print_r($resource);具有“标题”索引键。

第二个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 回答