ホームページ >バックエンド開発 >PHPチュートリアル >配列内のフィールドの数をクエリしますか?

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

WBOY
WBOYオリジナル
2016-06-23 14:03:04934ブラウズ

$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 の数を取得する方法を教えてください。つまり、実際の出力が表示された後、この b6c5a531a458a2e790c1fd6421739d1c の行数をどうやって取得するのでしょうか?この a34de1251f0d9fe1e645927f19a896e8 のグループに何行あるかわからないため、581ecb51a2a6c1f53ee3004da5aa6f79merged cellb90dd5946f0946207856a8a37f441edf と同様に、結合セルを追加する必要があるためです。 $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 = "caa136c92cb3fbe457447e597aea48f2結合されたセルの内容< ;/td> ;";

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。