我正在尝试解析json数组字符串。尽管print_r可以正确打印所有值,但是在获取记录时却失败了。
我一定做的非常非常错误。您能帮忙更正吗?
这是我的代码
IP
答案 0 :(得分:0)
您的问题是,在您的$bank
和$category
数组中,所有键的尾部都有空格。如果将引用更改为包括这些空格,则代码可以正常工作。参见https://3v4l.org/GX5iC
或者,您可以在foreach
循环中使用类似以下代码的方式修剪数组键:
$bank_keys = array_map('trim', array_keys($bank_data));
$bank_data = array_combine($bank_keys, array_values($bank_data));
您还可以创建一个递归函数来修剪整个$dataset
值。例如:
function trim_keys($array) {
foreach ($array as $key => $value) {
echo "trimming key '$key' to '" . trim($key) . "'\n";
unset($array[$key]);
$array[trim($key)] = $value;
if (is_array($value))
$array[trim($key)] = trim_keys($value);
else
$array[trim($key)] = $value;
}
return $array;
}
然后,通过使用
$dataset = trim_keys($dataset);
您的代码可以正常工作。 Demo on 3v4l.org