在PHP中删除json数组中的键

在PHP中删除json数组中的键,php,json,Php,Json,我有这个 [{"cname":"NCPB"},{"cname":"NBK"}] 我从你那里得到的 关于mysql结果 我怎样才能从上面的JSON对象中获得这个[“NCPB”,“NBK”]。我想我可以回答这个问题,而不用看你的确切代码。基本上,您当前正在使用类似的方法获取查询结果,并对结果使用json\u encode: while ($row = $query->some_fetch_method()) { $results[] = $row; //

我有这个

[{"cname":"NCPB"},{"cname":"NBK"}]
我从你那里得到的

关于mysql结果


我怎样才能从上面的JSON对象中获得这个
[“NCPB”,“NBK”]

我想我可以回答这个问题,而不用看你的确切代码。基本上,您当前正在使用类似的方法获取查询结果,并对结果使用
json\u encode

while ($row = $query->some_fetch_method()) {
    $results[] = $row;               // you're building an array of associative arrays
}
echo json_encode($results);
相反,只需使用该特定列而不是整行填充结果数组

while ($row = $query->some_fetch_method()) {
    $results[] = $row['cname'];      // you need to build an array of strings instead
}
echo json_encode($results);
在使用
json\u encode
之前,应该先将查询结果数组转换成所需的格式。否则,您必须解码刚刚生成的JSON字符串,重新格式化结果,然后重新编码:

 $json = json_encode(array_column(json_decode($json), 'cname'));
或者用一些奇怪的正则表达式之类的。然而,撤销你已经做过的事情似乎没有意义


如果您不明白我的意思,请编辑您的问题,添加获取查询结果的代码,我将根据您的确切代码向您展示一个示例,但这应该会让您大致了解。

您的意思是
[“NCPB”,“NBK”]
,对吗?是的@don'tpanic向我们展示您的mysql获取代码。在进行json_编码之前,这就是您需要解决的问题。我感谢您正确回答了我的问题。。。。但是
echo json\u encode($results)无法打印anyhting@NicholasSnr只是为了确定,你没有使用我答案中的确切代码,对吗
some\u fetch\u method()
实际上并不存在,它只是一个示例,展示了如何更改现有代码的一般思路。总的来说,这确实有效。至于它为什么不适合您,我需要查看您的更多代码才能理解。
$sql=“SELECT cname FROM sub_targets”;$query=mysql\u查询($sql);while($row=$query->mysql_fetch_array($query)){$results[]=$row;//您正在构建一个关联数组}echo json_encode($results);
使用
$results[]=$row['cname']相反,它应该会给你想要的结果。不会显示任何内容的唯一原因是:(1)您的查询由于某种原因无法执行(2)您的查询成功执行,但未返回任何结果(3)脚本中的其他地方出现错误,在结果显示之前结束了执行。谢谢…但是如何分配
$results[]
数组到变量,比如说
$MYARRAY