【问题标题】:Add another data to json array with PHP使用 PHP 向 json 数组添加另一个数据
【发布时间】:2017-03-18 18:18:00
【问题描述】:

我正在尝试创建一个带有循环的 JSON 数组,我将语言名称存储在数据库中并从查询中检索,之后我需要将其转换为这种格式

$arrayName = array('lang-1' => null , 'lang-2' => null, ..... ,'lang-n' => null );

我怎样才能做到这一点

PHP代码是这样的

include_once "inc/init.php";
header('Content-Type: application/json');
$arrayName = array();
$query = $db->query("SELECT * FROM `medium`");
while ($data = mysqli_fetch_assoc($query)) {
array_push($arrayName, $data['medium']);
}
echo json_encode($arrayName);

我正在采用这种格式

[
 "Kannada",
 "Telugu",
 "Tamil",
 "Urdu",
 "Spanish",
 "Arabian"
]

我正在尝试推动价值,但我没有采用那种格式,请帮助我

谢谢

【问题讨论】:

  • 你得到什么格式?你的表结构是什么样的?
  • 我需要查看您的表结构才能为您的问题写一个答案。
  • 数据库表?它只有 2 列。 id 和语言列
  • 我需要语言名称,因为键 n 值为空

标签: php arrays json object while-loop


【解决方案1】:

根据您的 cmets,我假设 $data['language'] 代表您的语言名称。然后你可以通过以下代码实现你的目标:

include_once "inc/init.php";
header('Content-Type: application/json');
$arrayName = array();
$query = $db->query("SELECT * FROM `medium`");

while ($data = mysqli_fetch_assoc($query)) {
    $arrayName[$data['language']] = null; // $array[$key] = $value
}

echo json_encode($arrayName);

【讨论】:

  • 是的,谢谢,这种格式我只想要那个数组,
【解决方案2】:

使用 array_push 你会得到同样的结果

include_once "inc/init.php";
header('Content-Type: application/json');
$arrayName = array();
$query = $conn->query("SELECT * FROM `medium`");
while ($data = mysqli_fetch_assoc($query)) {
array_push($arrayName,$data['language ']);

}
$arrayName=array_fill_keys($arrayName, 'null'); 
echo json_encode($arrayName);

【讨论】:

  • 在这种情况下,我将在不同的数组对象中获取所有语言,例如 [{lang-1}, {lang-2}....{lang-n}] 这个
  • 以上答案解决了我的问题,无论如何谢谢你的重播
  • @Rak_code 对!请看现在它会为你工作
  • 是的。它也工作正常。 :) tq tq 为您解答
  • 这是我的荣幸!
猜你喜欢
  • 1970-01-01
  • 2021-03-31
  • 1970-01-01
  • 2016-10-24
  • 2021-03-20
  • 2021-08-30
  • 2016-08-16
  • 2017-07-26
  • 1970-01-01
相关资源
最近更新 更多