我无法创建数组中的PHP数组 [英] Php array with in array i am not able to create

查看:41
本文介绍了我无法创建数组中的PHP数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在一个数组中获取两个数组值.我有两种情况,一种完成,另一种没有完成.在一个数组中,我可以得到一个数组,但不能实现倍数,如下面的预期输出中所述.

I am trying to get two array values within an array. I have two situations, one is done and the another one is not done. Within an array I am able to get a single array, but not able to achieve multiples, as mentioned in the below expected output.

[{"id":"3","category":"Name","text":"text with some data","image":"http:\/\/examole.net\/folder\/images\/category1.jpg"},{"id":"4","category":"Name","text":"text with some data","image":"http:\/\/examole.net\/folder\/images\/category1.jpg"}]

带有完成和未完成查询的代码

code with done and notdone query

$response = array();
$response2 = array();
if(isset($_REQUEST['action']) && $_REQUEST['action']=='test') {
    $query="select * from exampledb where id='".$db->escape($_REQUEST['id'])."' and workdone='done'";
    $num= $db->num_rows($query);          
    if($num) {
        $rows = $db->get_results($query);

        foreach($rows as $k=>$row1) { 
            $response[$k]['id'] = $row1['id'];
                $response[$k]['category'] = $row1['category'];
                $response[$k]['text'] = $row1['text'];
                $response[$k]['image'] = $row1['image'];
            }       
        } else{
            $response['message']='No user Found';
            $response['status']='fail';
        }

        $query="select * from exampledb where id='".$db->escape($_REQUEST['id'])."' and workdone='notdone'";
        $num= $db->num_rows($query);          
        if($num) {
            $rows = $db->get_results($query);
            foreach($rows as $k=>$row1) { 
                $response[$k]['id'] = $row1['id'];
                $response[$k]['category'] = $row1['category'];
                $response[$k]['text'] = $row1['text'];
                $response[$k]['image'] = $row1['image'];
            }       
        } else {
            $response['message']='No user Found';
            $response['status']='fail';
        }
        echo json_encode($response);
        echo json_encode($response2);
    }
}

期望输出

    [{Done:{{"id":"3","category":"Name","text":"text with some data","image":"http:\/\/examole.net\/folder\/images\/category1.jpg"},{"id":"4","category":"Name","text":"text with some data","image":"http:\/\/examole.net\/folder\/images\/category1.jpg"} }, 
    Notdone:{{"id":"3","category":"Name","text":"text with some data","image":"http:\/\/examole.net\/folder\/images\/category1.jpg"},{"id":"4","category":"Name","text":"text with some data","image":"http:\/\/examole.net\/folder\/images\/category1.jpg"}    }}]

推荐答案

您可以通过两种方式制作

You can make this in two way

1.

将所有内容保留不变,并在sql/array处理代码之后移动 echo :

Leave everything as is and move the echo just after the sql/array processing code:

//... [...] ...
}
        else{
            $response['message']='No user Found';
            $response['status']='fail';
        }

 echo json_encode($response); //<---- here for the first

$query="select * from exampledb where id='".$db->escape($_REQUEST['id'])."' and workdone='notdone'";
        $num= $db->num_rows($query);  //.......  

//... [...] ...
}
        else{
            $response['message']='No user Found';
            $response['status']='fail'; 
        }
    echo json_encode($response); //<---- here for the second
//.......  

2

在第二次查询后更改foearch中的相对变量

change relative variables inside foearch after your SECOND query

// this remains the same from here
 $query="select * from exampledb where id='".$db->escape($_REQUEST['id'])."' and workdone='done'";
        $num= $db->num_rows($query);          
        if($num)
        {
            $rows = $db->get_results($query);

            foreach($rows as $k=>$row1) { 

                $response[$k]['id'] = $row1['id'];
                $response[$k]['category'] = $row1['category'];
                $response[$k]['text'] = $row1['text'];
                $response[$k]['image'] = $row1['image'];
            }       
        }
        else{
            $response['message']='No user Found';
            $response['status']='fail';
        }
// ----------------- to here

// and here ....
        $query="select * from exampledb where id='".$db->escape($_REQUEST['id'])."' and workdone='notdone'";
        $num= $db->num_rows($query);          
        if($num)
        {
            $rows = $db->get_results($query);

            foreach($rows as $k=>$row1) { 
                //... change this with $response2
                $response2[$k]['id'] = $row1['id'];
                $response2[$k]['category'] = $row1['category'];
                $response2[$k]['text'] = $row1['text'];
                $response2[$k]['image'] = $row1['image'];
            }       
        }
        else{
            //... and this
            $response2['message']='No user Found';
            $response2['status']='fail';
        }
// 
echo json_encode($response);
echo json_encode($response2);

如果不填充 $ response2 ,您将永远不会得到 json_encode

If you don't populate $response2 you never get at the end for json_encode

这篇关于我无法创建数组中的PHP数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆