ホームページ  >  記事  >  バックエンド開発  >  PHPの配列問題、多次元配列の先頭を取り出す

PHPの配列問題、多次元配列の先頭を取り出す

WBOY
WBOYオリジナル
2016-06-23 13:59:55851ブラウズ

PHP 配列の問題、多次元配列の前の次元を取り出します。
Array ( [0] => Array ( [username] => test2222 [id] => 66) [1] => Array ( [username] => test [id] => 64 ) [ 2] => 配列 ([ユーザー名] => テスト [id] => 62) [3] => 配列 ([ユーザー名] => aaa [id] => 61))、行う必要がありますページング。最初のページでは、$key を使用して通常の 0 ~ 9 を表示できます。次のページは 10 ~ 19 であるはずですが、最初のページと同じように 0 ~ 9 が表示されています


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

何をするのか教えてください

あなたのことを教えてくださいアプローチ
これを行うために thinkphp を使用しました。背景の $this->assign('list',$list), $list はこの多次元配列です。フロントページでは、volist ループ、$vo.id および $vo.username を使用します。 IDと名前を表示します。 $key を使用して、このテーブルのシリアル番号を最初のページは通常の 0 ~ 9 にしますが、ページングすると、2 ページ目と 3 ページ目も最初のページと同じ 0 ~ 9 になります。 10-19、20-29 が表示されるはずです



1 つ目は最初のページ用、2 つ目は 2 ページ目用、残りは同じです

thinkphp、背景 $this - で作成しました>assign('list',$list), $list はこの多次元配列です。フロントページでは、volist ループ、$vo.id および $vo.username を使用します。 IDと名前を表示します。 $key を使用して、このテーブルのシリアル番号を最初のページは通常の 0 ~ 9 にしますが、ページングすると、2 ページ目と 3 ページ目も最初のページと同じ 0 ~ 9 になります。 10-19、20-29 を表示できるようにする必要があります。データベースとのページングですか?

これを行うために thinkphp を使用しました。背景の $this->assign('list',$list), $list はこの多次元配列です。フロントページでは、volist ループ、$vo.id および $vo.username を使用します。 IDと名前を表示します。 $key を使用して、このテーブルのシリアル番号を最初のページは通常の 0 ~ 9 にしますが、ページングすると、2 ページ目と 3 ページ目も最初のページと同じ 0 ~ 9 になります。 10-19、20-29 を表示できるようにする必要があります。データベースとのページングですか?
さて、ページングが行われていない場合は $key を使用できますが、ページングされている場合は各ページが同じになります

これを行うには thinkphp を使用し、背景には $this->assign を使用しました。 ('list',$list) 、$list はこの多次元配列です。フロントページでは、volist ループ、$vo.id および $vo.username を使用します。 IDと名前を表示します。 $key を使用して、このテーブルのシリアル番号を最初のページは通常の 0 ~ 9 にしますが、ページングすると、2 ページ目と 3 ページ目も最初のページと同じ 0 ~ 9 になります。 10-19、20-29 を表示できるようにする必要があります。データベースとのページングですか?

私が現在検討しているのは、 $key + ページ数 * 各ページに表示される行数を使用することです。各ページのページ数を取得する方法がわかりません。 thinkphp 独自のページングを使用しています。 ;volist name="list" id ="vo" key="k" > $key は現在の $list のシリアル番号です
意味によると、ページ番号 * ページ行番号を使用して計算されます。 + $key

9cc49fd1f027e60674d05a957259033a $key は現在の $list のシリアル番号です

あなたによると、次のように計算する必要があります。ページ番号 * ページ行番号 + $key

さて、私は今この方法を思いつきました
ea287b0425d5b85cd4af39207985bce4 ここで $key はシリアル番号です現在の $list の番号
あなたの意味によると、ページ番号を使用する必要があります * ページの行数 + $key は

thinkphp ページングによって計算され、現在のページは nowPage です。私は $nowPage を使用しましたが、それはできません見つからない。バックグラウンドで $this->assign('nowPage',$nowPage); を使用しましたが、$nowPage が見つかりませんでした。


$list にシリアル番号を入れた方がずっと簡単だと思いました

$list にシリアル番号を入れた方がずっと簡単だと思いました

うーん、でも正面寸法の出し方が分かりません多次元配列の

Array ( [0 ] => Array ( [username] => test2222 [id] => 66) [1] => Array ( [username] => test [id] ] => 64 ) [2] => 配列 ( [ユーザー名] => テスト [id] => 62 ) [3] => 配列 ( [ユーザー名] => aaa [id] => 61 ) )
0,1, 2,3 の出し方がわかりません

array_keys($list)

一般的なシリアル番号は 0 から始まりませんが、1 から始まるのが通例です
$pageoffs を開始シリアル番号としましょう、その後

foreach($list as &$r) $r['序号'] = $pageoffs++;$this->assign('list',$list);

array_keys($list)

一般的なシリアル番号は 0 から始まりませんが、慣習的に 1 から始まります
$pageoffs を開始シーケンス番号としましょう、その後

foreach($list as &$r) $r['序号'] = $pageoffs++;$this->assign('list',$list);

あなたの方法は正しいです。問題は、thinkphp ページングであることが判明しました。各クエリでは、すべてではなく、現在のページのみがチェックされます。

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