首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对数组中的最后一项(来自mysql_fetch_array)做一些不同的事情?

如何对数组中的最后一项(来自mysql_fetch_array)做一些不同的事情?
EN

Stack Overflow用户
提问于 2011-11-30 01:55:25
回答 3查看 85关注 0票数 0

我正在尝试确保逗号位于除最后一项之外的所有项之后-我正在试图弄清楚如何计算变量列表的最后一项。我决定尝试使用count($variablename),但它似乎不起作用。

我的语法有问题吗?

代码语言:javascript
复制
$servicearray = mysql_query("select serv_id from org_serv_xref where org_id='".$org_id."'");

  $servi = 0;

while ($servicearrayrow = mysql_fetch_array($servicearray)) {
    $servdescarray = mysql_query("select serv_desc from service where serv_id='".$servicearrayrow['serv_id']."'");

while ($servdescarrayrow = mysql_fetch_array($servdescarray)) {
    if ($servi < 5 OR $servi < count($servdescarrayrow)) {
   ECHO $servdescarrayrow['serv_desc'].",";
   $servi++;
    }
    else if ($servi == 5 OR $servi == count($servdescarrayrow)) {
        echo $servdescarrayrow['serv_desc'];
        $servi++;
    }
    else {
        $servi = 0;
        break 2;
    }
}
}
EN

回答 3

Stack Overflow用户

发布于 2011-11-30 02:08:02

因为你要在0启动$servi。它将始终小于数组的计数。如果你从1开始,它应该会按照你期望的方式工作。

票数 0
EN

Stack Overflow用户

发布于 2011-11-30 02:21:01

将查询更改为

代码语言:javascript
复制
$servicearray = mysql_query("select GROUP_CONCAT(serv_id) from org_serv_xref where org_id='".$org_id."'");

现在,sql为您构建了以逗号分隔的漂亮列表:)

票数 0
EN

Stack Overflow用户

发布于 2011-11-30 02:28:38

据我所知,你正在尝试做这样的事情(尽管我可能完全错了):

代码语言:javascript
复制
// Initialise vars
$lastid = '';
$items = array();

// Do the query
$query = "SELECT serv_desc, serv_id
          FROM service
          WHERE serv_id IN (
            SELECT serv_id
            FROM org_serv_xref
            WHERE org_id='".$org_id."'
          )
          ORDER BY serv_id";
$servdescarray = mysql_query($query);

while ($servdescarrayrow = mysql_fetch_assoc($servdescarray)) {
  // We've reached the next ID, echo the result of the last one.
  if ($lastid != $servdescarrayrow['serv_id']) {
    $lastid = $servdescarrayrow['serv_id'];
    if (count($items)) {
      echo implode(',',$items);
      $items = array();
    }
  }
  if (count($items) == 5) { // We don't want more than 5 items
    continue;
  } else  { // Add an item to the results
    $items[$servdescarrayrow['serv_desc']];
  }
}

// Make sure we get the last one
if (count($items)) {
  echo implode(',',$items);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8315375

复制
相关文章

相似问题

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