Home  >  Article  >  Backend Development  >  查询数组中摸个字段的个数?

查询数组中摸个字段的个数?

WBOY
WBOYOriginal
2016-06-23 14:03:04887browse

$r=mysql_query('select orderid,zhuangtai,group_concat(`name`) as name,group_concat(`shouji`) as shouji,group_concat(`sex`) as sex from `order` group by orderid'); echo "<table width=950 border='1px solid'>"; echo "<tr><th>姓名</th><th>手机</th><th>性别</th></tr>";while($row=mysql_fetch_assoc($r)){    $shouji_arr=explode(',',$row['shouji']);    $sex_arr=explode(',',$row['sex']);    echo "<td colspan=3>订单号:".$row[orderid]."  状态:".$row['zhuangtai']."</td>";    foreach(explode(',',$row['name']) as $k=>$v){         echo "<tr>";         echo "<td>$v</td><td>$shouji_arr[$k]</td><td>$sex_arr[$k]</td>";         echo "</tr>";    }}echo "</table>";


这是一个循环输出的列子,我想知道,怎么得到
<td>$v</td><td>$shouji_arr[$k]</td><td>$sex_arr[$k]</td>
中,$v的个数呢? 意思就是,怎么得到实际输出显示之后,这个

有多少行呢?因为我需要增加一个合并的单元格,类似与   合并的单元格  因为不知道这组中有多少行,也就是$v的个数,所以不知道rowspan 这个值是多少!


不知道我的表述,大家听没听清楚,就是 这个foreach 输出显示,但是不能确定输出多少行,需要得到$v的个数,因为一个$v占一行!


回复讨论(解决方案)

foreach( $t=explode(',',$row['name']) as $k=>$v){
  count($t) 就是 $v 的个数

你也可以在 SQL 串中加一个 count(*) 来得到

你也可以在 foreach循环外面 定义一个整形变量为0

在循环体里面 自增

例如
$i=0;
foreach()
{
   $i++;
}

本帖最后由 xuzuning 于 2013-03-16 15:55:30 编辑
            foreach($t=explode(',',$row['name']) as $k=>$v){
  count($t) 就是 $v 的个数

你也可以在 SQL 串中加一个 count(*) 来得到

非常感谢版主的回答,还有@zhangbin1988 的回答,如果我直接在foreach 里增加一个

<td rowspan='".count($t)."'>12121</td>
的话,虽然是合并单元格了,但是这个合并的单元格也会循环输出count($t)次,怎么让这个单元格只输出一次呢?如果吧这个单元格单独放在foreach 的外面,是错位的,请教大大们!

$t = explode(',',$row['name']);
$s = "

合并的单元格的内容";
foreach($t as $k=>$v){
  echo " " . $s;
  echo "$v $shouji_arr[$k] $sex_arr[$k]";
  echo "";
  $s = ''; //输出过了就清空
}
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn