dongre9937 2016-05-06 12:12
浏览 30
已采纳

键入从phparray到jsonarray的转换,并作为响应发回

i am creating webservice in which i had made a function which is providing me multidimensional array in php but to sending these data to android we have to convert it into response of json after tried lot now i got various problem

Now these function which is providing php array name is getabsendstudent :

public function getabsendstudents($lecture1, $lecture2) {

    function bool2str($bool) {
        if ($bool === false)
            return 'FALSE';
        else
            return 'TRUE';
    }

    function compareObjects(&$o1, &$o2) {
        echo 'o1 == o2 : ' . bool2str($o1 == $o2) . "
";
    }

    ///queries
    $ss  = "SELECT * FROM attendence WHERE lecturenumber = $lecture1";
    $ss2 = "SELECT * FROM attendence WHERE lecturenumber = $lecture2";   

    $result = mysql_query($ss);
    $result2 = mysql_query($ss2);

    // fetching number of rows
    $no_of_rows  = 0;
    $no_of_rows2 = 0;   
    $no_of_rows  = mysql_num_rows($result);
    $no_of_rows2 = mysql_num_rows($result2);

    ///// array objects
    $testforstudent  = array();
    $testforstudent2 = array();
    $absentstudent   = array();
    $presentstudent  = array();

    //// variable declaration
    $len=0;
    $result_array_for_lec1[] = array();
    $result_array_for_lec2[] = array(); 

    ///fetching whole students in arrays
    if ($no_of_rows > 0) {
        $acount = 0;
        $pcout = 0;

        while ($row = mysql_fetch_array($result)) {
            $testforstudent[] = $row;
            $acount = $acount + 1;
        }
    }

    if ($no_of_rows > 0) {
        $pcount = 0;
        while ($row2 = mysql_fetch_array($result2)) {
            $testforstudent2[] = $row2;
            $pcount = $pcount + 1;          
        }
    }

    /// here we are comparing in status of student
    // otherwise student had bunked classes          
    if ($no_of_rows > $no_of_rows2)
        $len = $no_of_rows2;
    else
        $len = $no_of_rows;

    global $p;
    global $a;
    for ($i = 0; $i < $len; $i++) {
        $bo = strtolower($testforstudent[$i]["status"]) == strtolower($testforstudent2[$i]["status"]);

        if ($bo) {
            ////present student     
        }
        else {
            $absentstudent[$a] = $testforstudent2[$i];
            $a++;
        }
    }

    echo json_encode($absentstudent);
    return $absentstudent;
}

Data which is generated by these function

{
    "": {
            "0": "17",
            "id": "17",
            "1": "\"12:30\"",
            "starttime": "\"12:30\"",
            "2": "9",
            "classid": "9",
            "3": "\"2:30\"",
            "endtime": "\"2:30\"",
            "4": "cs602",
            "lecturecode": "cs602",
            "5": "1102",
            "teacherid": "1102",
            "6": "0827cs131235",
            "enrollmentnumber": "0827cs131235",
            "7": "\"P\"",
            "status": "\"P\"",
            "8": "\"24/04/2016\"",
            "dateof": "\"24/04/2016\"",
            "9": "\"sunday\"",
            "dayof": "\"sunday\"",
            "10": "2",
            "lecturenumber": "2"
    },
    "1": {
            "0": "18",
            "id": "18",
            "1": "\"12:30\"",
            "starttime": "\"12:30\"",
            "2": "9",
            "classid": "9",
            "3": "\"2:30\"",
            "endtime": "\"2:30\"",
            "4": "cs602",
            "lecturecode": "cs602",
            "5": "1102",
            "teacherid": "1102",
            "6": "0827cs131236",
            "enrollmentnumber": "0827cs131236",
            "7": "\"P\"",
            "status": "\"P\"",
            "8": "\"24/04/2016\"",
            "dateof": "\"24/04/2016\"",
            "9": "\"sunday\"",
            "dayof": "\"sunday\"",
            "10": "2",
            "lecturenumber": "2"
    }
}

Now i had created one more function which is catching $absentarray with variable of $resultarray.and i need code in these function code is

$result_array = $db->getabsendstudents($lecture1, $lecture2);
if ($result_array) {
    $count = 0;

    // result array is catching absentstudent array
    $response["success"] = 1;
    $response["user"][$count]["classid"] = $result_array[$count]["classid"];

    $count = $count + 1;
}
else {
    // user failed to store
    $response["error"] = 1;
    $response["error_msg"] = "JSON Error occured in Registartion";
    echo json_encode($response);
}
  • 写回答

1条回答 默认 最新

  • duanhan5230 2016-05-08 02:25
    关注

    SOLVED: The problem had solved by just applying the logic of foreach loop and in if($result_array) selection .The code is

      if ($result_array) {
                    $count=0;       
            foreach ($result_array as $value)
                {
    
                    // user stored successfully
                $response["success"] = 1;
                $response["user"][$count]["classid"] = $value["classid"];
                $response["user"][$count]["enrollmentnumber"]= $value["enrollmentnumber"];
                $response["user"][$count]["teacherid"]=$value["teacherid"];
    
    
                $count=$count+1;
    
                }
    
        echo json_encode($response);
    
        } 
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程