PHP数组未使用JSON正确格式化
我已经生成了一个函数,它将遍历数据库表中的记录,并将它们转换为数组以供进一步使用PHP数组未使用JSON正确格式化,php,arrays,Php,Arrays,我已经生成了一个函数,它将遍历数据库表中的记录,并将它们转换为数组以供进一步使用 public function cycleCount() { global $db; $selectProducts = $db->query("SELECT * FROM stockroom_products"); $results = array("catA", "catB", "catC"); while($row = $db->assoc($selectPr
public function cycleCount()
{
global $db;
$selectProducts = $db->query("SELECT * FROM stockroom_products");
$results = array("catA", "catB", "catC");
while($row = $db->assoc($selectProducts))
{
if($row['Product_PRICE'] >= 10)
{
array_push($results, "catA", $row['ID']);
}
else if ($row['Product_PRICE'] >= 5 AND $row['Product_PRICE'] < 10)
{
array_push($results, "catB", $row['ID']);
}
else if ($row['Product_PRICE'] > 0 AND $row['Product_PRICE'] < 5)
{
array_push($results, "catC", $row['ID']);
}
$json_data = json_encode($results);
//echo $json_data;
echo $json_data;
}
}
目前它是这样做的
["catA","catB","catC","catB","1"]["catA","catB","catC","catB","1","catC","2"]["catA","catB","catC","catB","1","catC","2","catC","3"]["catA","catB","catC","catB","1","catC","2","catC","3","catC","4"]["catA","catB","catC","catB","1","catC","2","catC","3","catC","4","catA","5"]["catA","catB","catC","catB","1","catC","2","catC","3","catC","4","catA","5","catC","6"]["catA","catB","catC","catB","1","catC","2","catC","3","catC","4","catA","5","catC","6","catC","9"]["catA","catB","catC","catB","1","catC","2","catC","3","catC","4","catA","5","catC","6","catC","9","catA","10"]["catA","catB","catC","catB","1","catC","2","catC","3","catC","4","catA","5","catC","6","catC","9","catA","10","catC","11"]["catA","catB","catC","catB","1","catC","2","catC","3","catC","4","catA","5","catC","6","catC","9","catA","10","catC","11","catC","12"]["catA","catB","catC","catB","1","catC","2","catC","3","catC","4","catA","5","catC","6","catC","9","catA","10","catC","11","catC","12","catC","13"]["catA","catB","catC","catB","1","catC","2","catC","3","catC","4","catA","5","catC","6","catC","9","catA","10","catC","11","catC","12","catC","13","catA","14"]["catA","catB","catC","catB","1","catC","2","catC","3","catC","4","catA","5","catC","6","catC","9","catA","10","catC","11","catC","12","catC","13","catA","14","catA","16"]["catA","catB","catC","catB","1","catC","2","catC","3","catC","4","catA","5","catC","6","catC","9","catA","10","catC","11","catC","12","catC","13","catA","14","catA","16","catB","17"]["catA","catB","catC","catB","1","catC","2","catC","3","catC","4","catA","5","catC","6","catC","9","catA","10","catC","11","catC","12","catC","13","catA","14","catA","16","catB","17","catA","18"]["catA","catB","catC","catB","1","catC","2","catC","3","catC","4","catA","5","catC","6","catC","9","catA","10","catC","11","catC","12","catC","13","catA","14","catA","16","catB","17","catA","18","catA","19"]["catA","catB","catC","catB","1","catC","2","catC","3","catC","4","catA","5","catC","6","catC","9","catA","10","catC","11","catC","12","catC","13","catA","14","catA","16","catB","17","catA","18","catA","19","catB","20"]["catA","catB","catC","catB","1","catC","2","catC","3","catC","4","catA","5","catC","6","catC","9","catA","10","catC","11","catC","12","catC","13","catA","14","catA","16","catB","17","catA","18","catA","19","catB","20","catB","21"]
您正在将值推送到一个无效的字符串 请尝试这样定义结果数组:
$result=array(“catA”=>array(),“catB”=>array(),“catC”=>array())代码>
这将得到嵌套数组,从而得到所需的结果。
还可以使用array_push($result['catA'],$row['ID'])
而不是array\u push($reuslt,'catA',$row[ID'])
正如@u_mulder正确指出的那样,json应该在while循环之后得到响应 您正在将值推送到一个无效的字符串
请尝试这样定义结果数组:
$result=array(“catA”=>array(),“catB”=>array(),“catC”=>array())代码>
这将得到嵌套数组,从而得到所需的结果。
还可以使用array_push($result['catA'],$row['ID'])
而不是array\u push($reuslt,'catA',$row[ID'])
正如@u_mulder正确指出的那样,json应该在while循环之后得到响应 array\u push
根据文档,不作为第二个参数键入:
您应该这样做:
$results = array("catA" => [], "catB" => [], "catC" => []);
if($row['Product_PRICE'] >= 10)
{
$results["catA"][] = $row['ID'];
}
else if ($row['Product_PRICE'] >= 5 AND $row['Product_PRICE'] < 10)
{
$results["catB"][] = $row['ID'];
}
else if ($row['Product_PRICE'] > 0 AND $row['Product_PRICE'] < 5)
{
$results["catC"][] = $row['ID'];
}
$results=array(“catA”=>[],“catB”=>[],“catC”=>[]);
如果($row['Product_PRICE']>=10)
{
$results[“catA”][]=$row['ID'];
}
如果($row['Product\U PRICE']>=5和$row['Product\U PRICE']<10)
{
$results[“catB”][]=$row['ID'];
}
如果($row['Product\U PRICE']>0和$row['Product\U PRICE']<5)
{
$results[“catC”][]=$row['ID'];
}
这对您有用吗?数组\u push
根据文档不作为第二个参数输入:
您应该这样做:
$results = array("catA" => [], "catB" => [], "catC" => []);
if($row['Product_PRICE'] >= 10)
{
$results["catA"][] = $row['ID'];
}
else if ($row['Product_PRICE'] >= 5 AND $row['Product_PRICE'] < 10)
{
$results["catB"][] = $row['ID'];
}
else if ($row['Product_PRICE'] > 0 AND $row['Product_PRICE'] < 5)
{
$results["catC"][] = $row['ID'];
}
$results=array(“catA”=>[],“catB”=>[],“catC”=>[]);
如果($row['Product_PRICE']>=10)
{
$results[“catA”][]=$row['ID'];
}
如果($row['Product\U PRICE']>=5和$row['Product\U PRICE']<10)
{
$results[“catB”][]=$row['ID'];
}
如果($row['Product\U PRICE']>0和$row['Product\U PRICE']<5)
{
$results[“catC”][]=$row['ID'];
}
这对你有用吗?试试看
piblic function cycleCount(){
global $db;
$selectProducts = $db->query("SELECT * FROM stockroom_products");
$catA =array();
$catB =array();
$catC =array();
$results = array();
while($row = $db->assoc($selectProducts))
{
if($row['Product_PRICE'] >= 10)
{
array_push($catA,array('catA' =>$row['ID']));
}
else if ($row['Product_PRICE'] >= 5 AND $row['Product_PRICE'] < 10)
{
array_push($catB,array('catB' =>$row['ID']));
}
else if ($row['Product_PRICE'] > 0 AND $row['Product_PRICE'] < 5)
{
array_push($catC,array('catC' =>$row['ID']));
}
$json_data = json_encode($results);
//echo $json_data;
echo $json_data;
}
$results=array($catA,$catB,$catC);
print_r($results);
}
?>
piblic函数cycleCount(){
全球$db;
$selectProducts=$db->query(“从库存_产品中选择*);
$catA=array();
$catB=array();
$catC=array();
$results=array();
而($row=$db->assoc($selectProducts))
{
如果($row['Product_PRICE']>=10)
{
数组推送($catA,array('catA'=>$row['ID']);
}
如果($row['Product\U PRICE']>=5和$row['Product\U PRICE']<10)
{
数组推送($catB,数组('catB'=>$row['ID']);
}
如果($row['Product\U PRICE']>0和$row['Product\U PRICE']<5)
{
数组推送($catC,数组('catC'=>$row['ID']);
}
$json_data=json_encode($results);
//echo$json_数据;
echo$json_数据;
}
$results=阵列($catA、$catB、$catC);
打印(结果);
}
?>
试试看
piblic function cycleCount(){
global $db;
$selectProducts = $db->query("SELECT * FROM stockroom_products");
$catA =array();
$catB =array();
$catC =array();
$results = array();
while($row = $db->assoc($selectProducts))
{
if($row['Product_PRICE'] >= 10)
{
array_push($catA,array('catA' =>$row['ID']));
}
else if ($row['Product_PRICE'] >= 5 AND $row['Product_PRICE'] < 10)
{
array_push($catB,array('catB' =>$row['ID']));
}
else if ($row['Product_PRICE'] > 0 AND $row['Product_PRICE'] < 5)
{
array_push($catC,array('catC' =>$row['ID']));
}
$json_data = json_encode($results);
//echo $json_data;
echo $json_data;
}
$results=array($catA,$catB,$catC);
print_r($results);
}
?>
piblic函数cycleCount(){
全球$db;
$selectProducts=$db->query(“从库存_产品中选择*);
$catA=array();
$catB=array();
$catC=array();
$results=array();
而($row=$db->assoc($selectProducts))
{
如果($row['Product_PRICE']>=10)
{
数组推送($catA,array('catA'=>$row['ID']);
}
如果($row['Product\U PRICE']>=5和$row['Product\U PRICE']<10)
{
数组推送($catB,数组('catB'=>$row['ID']);
}
如果($row['Product\U PRICE']>0和$row['Product\U PRICE']<5)
{
数组推送($catC,数组('catC'=>$row['ID']);
}
$json_data=json_encode($results);
//echo$json_数据;
echo$json_数据;
}
$results=阵列($catA、$catB、$catC);
打印(结果);
}
?>
我想catC
(和catA
)应该是键?你也可以在循环后执行json\u编码和echo
,而不是在循环内。我想catC
(和catA
)应该是键吗?你应该在while
-循环后执行json\u encode
和echo
,而不是在循环内。你应该使用[]
而不是array\u push
-更易于阅读还应该提到,在while之后应该执行回显json-loop@Philipp您只能使用[]如果您有一个键和一个值,则不使用array_push。由于此示例只有一个值,您需要将其推送到数组中。当我这样做时,我会得到一个白色屏幕,没有任何内容是回音。您可以在while循环后编码/回音吗?您应该使用而不是数组\u push
-更具可读性还提到应在while之后进行json回显-loop@Philipp如果有一个键和一个值,则只能使用[]而不是array_push。因为这个例子只有一个值,你需要把它推到数组上。当我这样做的时候,我得到的是一个白色的屏幕,没有任何东西是回音。你敢在while循环之后编码/回音吗?还要提到回音json应该在while循环之后进行。当我在while循环之后移动回音时,它只显示一条记录,当我在上面这样做时,它会回音{“catA”:[],“catB”:[“1”],“catC”:[]{“catA”:[],“catB”:[],“catC”:[“2”]}{“catA”:[],“catB”:[],“catC”:[“3”]}{“catA”:[],“catB”:[],“catC”:[“4”}{“catA”:[“5”,“catB”:[],“catC”:[],“catC”:[]{“catA”:[],“catB”:这不是你想要的吗?这是我的代码的一个例子:foreach
模拟了你的while
循环所做的事情,还提到了在while循环之后应该做回显json。当我在while循环之后移动回显时,它只显示一条记录,当我在上面这样做时,它回显这个{“catA”:[],“catB”:[“1”,“catC”:[]}{“catA”:[],”catB:[],“catC:[“2”]}{“catA:[],“catB:[],“catC:[“3”]}{“catA:[],“catB”