程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

如何使用 for 循环生成列

发布于2023-03-23 07:21     阅读(855)     评论(0)     点赞(0)     收藏(2)


如何使此函数产生列occLvl_循环 3 次并用于explode从 sql CONCAT 中获取每个值。所以结果会变成这样。

[{
   "accommodationID": "LA56",
   "occLvl_0": "40.00",
   "occLvl_1": "70.00",
   "occLvl_2": "90.00"
}]
function getOccLevel(){
  global $ehorsObj;
  $occArray = array();

  $sql = "SELECT accommodationID, GROUP_CONCAT(occLevelDesc) AS occLevels
          FROM tblSamAccOccLevels
          WHERE ACTIVE = 'y'
          GROUP BY accommodationID
          ORDER BY accommodationID ASC, occLevelDesc ASC "; 
  $GetResult = $ehorsObj->FetchData($sql, $ehorsObj->DEFAULT_PDO_CONNECTIONS);
  while ($row = $GetResult->fetch()){

    $occArray[] = array(
      'accommodationID' => $row['accommodationID'],
    );
    //seem the method below is not working
    for ($j = 0; $j < 3; $j++) {
      $occArray["occLvl_".$j] = explode(",", $row['occLevels']) 
    }
  } 
  header("Content-type: application/json");
  $result = json_encode($occArray);
  echo $result; 
}

查询结果

accommodationID         occLevels
     LA56           40.00, 70.00, 90.00

解决方案


制作以数字命名的对象属性/变量(occLvl_0等)通常不是一个好主意,因为这使得很难以任何常规方式使用它们(例如使用循环)。更好的做法是将值放入数组中:

while ($row = $GetResult->fetch()){
    $occArray[] = array(
        'accommodationID' => $row['accommodationID'],
        'occLvl' => explode(",", $row['occLevels'])
    );
} 

这将为您提供类似于以下内容的输出 JSON:

[
    {
        "accommodationID": "LA56",
        "occLvl": [
            40,
            70,
            90
        ]
    },
    {
        "accommodationID": "PQ45",
        "occLvl": [
            30,
            60,
            100
        ]
    },
    ...
]

然后在您的 JS 中,您可以遍历occLvl数组以获取值。

如果您需要您描述的形式的数据,那么您需要迭代分解occLevels值以生成各个值,将它们推accommodationID入一个新数组,然后将该数组推入$occArray

while ($row = $GetResult->fetch()){
    $this_occ = array(
            'accommodationID' => $row['accommodationID'],
        );
    foreach (explode(",", $row['occLevels']) as $key => $occLvl) {
        $this_occ["occLvl_$key"] = $occLvl;
    }
    $occArray[] = $this_occ;
}    


所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.phpheidong.com/blog/article/520597/231f028281fa735cd629/

来源:php黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

0 0
收藏该文
已收藏

评论内容:(最多支持255个字符)