如何告诉php将字符串视为数组/json


How do I tell php to consider a string as an array / json

我正在构建一个可以从管理控制面板修改的动态表,并将数据存储在数据库列中的数组中,如下所示:

示例:tableBody:[[测试','test 2'],['1','2']]

然后我想在前端输出这样的表:

<table>
    <?php 
        $arrayFromDB = mysqli_fetch_array(mysqli_query($con, "select * from specialtable where id='$tableId'"))['tableBody'];
        $body = "";
        $tableArray = (how to convert to array this string $arrayFromDB);
        foreach ($tableArray as $key) {
            $body.= "<tr>";
            foreach ($key as $keyt) {
                $body.= "<td>".$keyt."</td>";
            }
            $body.="</tr>";
        }
        echo $body;
    ?>
</table>

已解决:问题是我储存的方式不对。基本上,我是以一种与json等效的自定义方式存储的,只是我使用了'而不是"。现在我可以使用json_decode()

您必须使用以下php函数将数组存储到mysql DB中的字符串中。

//for eg Define array 
$array = array();
$array[0][] = 'test';
$array[0][] = test 2;
$array[1][] = 'test';
$array[1][] = test 2;
// convert array to json
json_encode($array);

现在,当您从mysql数据库中检索数据时,只需解码该字符串。

$arrayFromDB = mysqli_fetch_array(mysqli_query($con, "select * from specialtable where id='$tableId'"))['tableBody'];
$decodedStrArray = json_decode($arrayFromDB);

这是你的解码阵列。。。