首页 > 解决方案 > 如何获取数组的每个元素

问题描述

该数组来自数据库。
print_r($row['index']);输出Array ( [index] => ["228","227","219","229","60"] ) 我的目标是使用 for 循环分别处理数组的每个元素。所以我想有类似的东西:

for ($x = 0; $x <= sizeof($row['index']); $x++) { 
   $ind = $row['index'][$x]; // first element is 228, then 227, ... 
}

我在上面应用 json_encode 得到以下信息

{"to_read_later":"[\"228\",\"227\",\"219\",\"229\",\"60\"]"}

并成为这个错误:

警告:json_decode() 期望参数 1 是字符串,给定数组`我该如何处理?

标签: phpmysqlarrays

解决方案


您的 print_r() 表明 $row 数组具有以下结构:

$row = [
    'index' => [
        'index' => '["228","227","219","229","60"]'
    ]
];

所以json_decode($row['index'], 1)会返回一个错误,因为$row['index']是一个数组。

相反,您需要申请json_decode($row['index']['index'], 1)解码 json 字符串。

$inds = json_decode($row['index']['index'], 1);

print_r($inds);

应该输出:

Array
(
    [0] => 228
    [1] => 227
    [2] => 219
    [3] => 229
    [4] => 60
)

推荐阅读