我有一个SQL字符串,假设是一个数组。我是php和sql的新手,无法弄清楚下一步该做什么。抱歉没有问题。
我从sql查询,没关系。通过mysql_fetch_array我有我需要的单元格。它看起来像:
[{“id”:“X”,“value”:“Y”} {Same structure} {Same structure}]
据我所知,这是我可以使用的短语法数组。所以我从这开始:
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$extra_fields = $row['extra_fields'];
}
我现在理解我声明了数组。但在现实世界中,我没有。
var_dump显示了一个字符串。在这样的情况下,我该怎么做才能声明正确的数组?
答案 0 :(得分:1)
不,您的数据是字符串表示 - 我认为是JSON。您需要从JSON字符串恢复结构。在PHP中,有json_decode()。例如,
//array(1) { [0]=> array(2) { ["id"]=> string(1) "X" ["value"]=> string(1) "Y" } }
var_dump(json_decode('[{"id":"X","value":"Y"}]', 1));
- 所以,你应该这样做:
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
$extra_fields[] = json_decode($row['extra_fields'], 1);
}
提示:不要使用 mysql 函数,不推荐使用它们。请改用 mysqli 或 PDO 。
答案 1 :(得分:0)
试试这个。
$data = array(); // create a variable to hold the information
while (($row = mysql_fetch_array($result, MYSQL_ASSOC)) !== false){
$data[] = $row;
}
print_r($data); // print result