配列内のフィールドの数をクエリしますか?

WBOY
リリース: 2016-06-23 14:03:04
オリジナル
904 人が閲覧しました

$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 の数を取得する方法を教えてください。つまり、実際の出力が表示された後、この の行数をどうやって取得するのでしょうか?この のグループに何行あるかわからないため、merged cell と同様に、結合セルを追加する必要があるためです。 $v 数値なので、rowspan の値がわかりません。


何を言ったか分かりませんか? この foreach 出力は表示されますが、$v が 1 つ占有されるため、何行出力されるかを取得する必要があります。一行!


ディスカッションに返信 (解決策)

foreach( $t=explode(',',$row['name']) as $k=>$v){
count($t) is $ v の数

SQL 文字列に count(*) を追加して

を取得することもできます。また、foreach ループの外側で整数変数を 0 になるように定義し、ループ本体内でそれをインクリメントすることもできます

たとえば
$i =0;
foreach()
{
$i++;
}


この投稿は 2013-03-16 15:55:30 に xuzuning によって最終編集されました

foreach($t=explode(',' ,$row[ 'name']) as $k=>$v){

count($t) は $v の数です

SQL 文字列に count(*) を追加して

を取得することもできますモデレーターさん、ありがとうございます。@zhangbin1988 さんの回答、foreach に

<td rowspan='".count($t)."'>12121</td>
ログイン後にコピー
を直接追加すると、セルは結合されますが、結合されたセルもループして count ($t) 回出力されます。 cell 1 回だけ出力する場合はどうでしょうか?このセルをforeachの外側に単独で配置すると位置がずれてしまいますので教えてください。

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

$s = "結合されたセルの内容< ;/td> ;";

foreach($t as $k=>$v){
echo "" . $s;
echo "$v $shoji_arr[ $k]$sex_arr[$k]";
echo "";
$s = ''; //出力は渡されました クリアするだけです
}

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート