【问题标题】:Creating an associative array in PHP from sql results, for json从 sql 结果在 PHP 中创建关联数组,用于 json
【发布时间】:2013-01-30 13:39:09
【问题描述】:

我正在尝试从 json_encode 的 sql 结果创建一个关联数组。

这是我的代码:

$timelineQuery = "SELECT * FROM timeline_table";
$contentQuery = "SELECT * FROM content_table";
$picQuery = "SELECT * FROM pic_table";

$sql = mysql_query($timelineQuery) or die(mysql_error()); 
$sql2 = mysql_query($contentQuery) or die(mysql_error());
$sql3 = mysql_query($picQuery) or die(mysql_error());   

$mainArray = array(
    'timeline' => $timelineArray = array(
        'content' => $contentArray = array(
            'pictures' => $picArray = array(),
        ),
    ),
);

while($row = mysql_fetch_assoc($sql)) { 
    $timelineArray[] = $row;            
}
while($row2 = mysql_fetch_assoc($sql2)) {
    $contentArray[] = $row2;
}
while($row3 = mysql_fetch_assoc($sql3)) {
    $picArray[] = $row3;
}
echo stripslashes(json_encode($mainArray));

如果我按原样对 $mainArray 进行 json_encode,则返回的 json 具有我正在寻找的语法,但如果不将其添加到数组的末尾,我将无法填充数组。

{"timeline":{"content":{"pictures":[]}}}

【问题讨论】:

    标签: php mysql arrays json associative


    【解决方案1】:

    第一:

    while($row = mysql_fetch_assoc($sql)) { 
        $timelineArray[] = $row;            
    }
    while($row2 = mysql_fetch_assoc($sql2)) {
        $contentArray[] = $row2;
    }
    while($row3 = mysql_fetch_assoc($sql3)) {
        $picArray[] = $row3;
    }
    

    然后:

        $mainArray = array(
            'timeline' => $timelineArray = array(
                'content' => $contentArray = array(
                    'pictures' => $picArray = array(),
                ),
            ),
        );
    echo stripslashes(json_encode($mainArray));
    

    你用空数组定义了你的数组并且没有更新它的状态。

    【讨论】:

    • 那你为什么建议最后重置数组?
    • 对不起,错误:timeline = array('content' => array('pictures' => $picArray()));它将与您的结构相对应:{"timeline":{"content":{"pictures":[]}}},因此您实际上不需要执行前两个查询。
    • 感谢您的回答!但是,我可能把我的问题表述得太模糊了。我正在努力解决的是如何从我的 3 个数组或 3 个 sql 查询构建一个三维数组。我可以在 PHP 中创建一个空的 3 维数组并将其编码为 json,然后得到我想要的结构。
    猜你喜欢
    • 1970-01-01
    • 2014-11-17
    • 2018-10-04
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 2012-03-14
    • 2015-09-01
    • 2012-04-30
    相关资源
    最近更新 更多