【发布时间】:2019-07-06 13:13:51
【问题描述】:
我需要一个 html 模板中的循环 php 数据,所以我知道它与 JSON 有关,但不是 JSON 专家,在搜索网络时找不到太多帮助。
$uniqueFranchise_id = array_unique($franchise_id);
$dataArr = '[
{
"name": "Dylan",
"page_link": "https://mypage.com/"
}
]';
foreach($uniqueFranchise_id as $franchise)
{
$sqlFranchise = "select * from franchise where franchise_id = $franchise";
$resultFranchise = $conn->query($sqlFranchise);
if($resultFranchise->num_rows > 0)
{
while($rowFranchise = $resultFranchise->fetch_assoc())
{
$dataArr = json_decode($data, TRUE);
$dataArr[] = "['name'=>'".$rowFranchise['name']."', 'page_link'=>'".$rowFranchise['page_link']."']";
//$json = json_encode($dataArr);
}
}
}
$json = json_encode($dataArr);
print_r($dataArr);
但它只追加一行。事实上,它删除了我的 dataArr 中已经存在的数据,只是从我的循环中添加了一行?也许我完全错误地处理这种情况?
【问题讨论】:
-
你的第一个 $dataArr 不是一个数组,它只是一个具有数组表示的字符串。在您的 while 循环中,添加 $dataArr .= json_decode($data, TRUE);这会将其附加到您的原始 $dataArr
-
好的,所以我需要将第一个作为关联数组?
-
实际上,我什至认为您不需要在 while 循环中执行 json_decode。由于 $dataArr 已经是一个字符串,而 json_decode 是从一个字符串转换的,我猜 $data 已经是一个字符串,只需将 $data 附加到 $dataArr 看看它会给你什么。