php - 如何获取数组的每个元素
问题描述
该数组来自数据库。
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 是字符串,给定数组`我该如何处理?
解决方案
您的 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
)
推荐阅读
- azure - 事件中心的 Azure 数据资源管理器检查点
- angularjs-directive - 如何防止 AngularJS 路由使用 ~ (波浪号)对 url 参数进行编码
- json - JSON 数组到 JSON 对象
- javascript - JavaScript 减去零更改结果
- python - 使用 python3 list(set(arr)) 意外的间歇性执行
- java - 如何使用 CSVWriter 将字符串转换为 CSV 文件
- sql - PostgreSQL 检查 Golang 中的空数组更改行为
- javascript - 模型未从视图中获取所有属性值(仅限新添加的属性)
- c# - nuget中缺少EntityFramework.SqlServer?
- c# - 坚持从 sqlDataReader 存储单个行以供以后使用