Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP数组未使用JSON正确格式化_Php_Arrays - Fatal编程技术网

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”