首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >json_enode()返回奇异值的对象数组

json_enode()返回奇异值的对象数组
EN

Stack Overflow用户
提问于 2016-06-25 09:40:19
回答 1查看 39关注 0票数 0

下面的代码只有像"a“、"b”、"c“这样的数组,但是返回对象、对象、对象。我需要在ajax成功函数中使用嵌套$each循环的结果。有什么更好的方法吗?

代码语言:javascript
复制
    if($_GET['semValue'])
    {
      $sem_value = $_GET['semValue'];
      try
      {  

         $stmt = $dbConn->prepare("SELECT Semester FROM CourseInfo");
         $semArray = array();
         if ($stmt->execute()) 
         {
           while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) 
           {
             $semArray[] = $row;
           }
         }
        echo json_encode($semArray);
        exit();

     }
    catch(PDOException $e)
    {
      echo 'Exception -> ';
      var_dump($e->getMessage());
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-25 09:50:41

在主数组中插入整个row,因此它将返回多维数组而不是字符串数组。

若要获取字符串数组,请替换以下行。

代码语言:javascript
复制
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) 
{
     $semArray[] = $row["Semester"];
}

解释:

$row会是这样,

代码语言:javascript
复制
$row= Array("semester"=>1);
$row= Array("semester"=>2);
// And so on

如果您遵循当前代码,那么最终的数组将是这样的,

代码语言:javascript
复制
$semArray = Array ( [0]=> Array("semester"=>1), [1]=> Array("semester"=>2));

因此,它成为多维数组,这就是为什么我们使用$row["Semester"]使之成为字符串/整数值的一维数组的原因。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38027064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档