0

尝试从从 JSON 转换的数组中提取数据时出现“警告:非法字符串偏移”错误。

现在我收集当您使用的索引不存在时会发生这种情况,这让我感到困惑,因为它确实存在并且当我希望直接访问数组值时工作正常。

我的 JSON 使用代码解码到数组中$clean = json_decode($json_output, true);,如果我使用echo $clean['text']“文本”的字符串值,则可以正常显示。

但是,当我尝试这段代码时,我得到了错误:

foreach ($clean as $key => $list){
$output .= $list['text'];}

我有一种感觉,我在某个地方犯了一个愚蠢的错误!

4

2 回答 2

1

$list['text']你实际上是在访问 的值,$clean['text']这显然是字符串"text"。只是,您正在访问它,就好像它是一个关联数组 - 实际上与$clean. 尝试这个:

foreach ($clean as $key => $list)
{
    if ($key === 'text')
    {// only echo for $clean['text']
        echo 'array clean, key: '.$key.' => '.$list."\n";
        continue;//next
    }
    echo $key.' => '.$list."\n";//shows all other key-value pairs
}

这应该为您清除问题:$key将保存所有包含的键$clean,包括text$list将被分配该键引用的值。就这么简单,真的

于 2013-04-27T17:51:28.530 回答
0

似乎这$list是一个字符串而不是一个数组。因此$list['text']失败。var_dump($list);循环内部会有所帮助。

请注意,var_dump()如果您遇到此类问题,它将永远是您的朋友。

于 2013-04-27T17:49:31.240 回答