簡単なお知らせを表示する(3)補足 勉強メモ
簡単なお知らせを表示する(3)の補足というか、最大表示件数を指定する部分でひとつ気になってた関数があって、そっちも調べてみた。前の記事の方では最大何件分繰り返し処理するっていうのを指定して該当件数を表示させてたんだけど、配列から一部のデータを取り出す時に使う関数もあった。
array_slice関数
array_slice関数 配列の一部を展開する
いつもの参考書によると配列のどの位置からいくつの値を取り出すとか位置だけ指定して以降のデータを全部取り出すことができるとのこと。
ちょっとこれ使って簡単なお知らせを表示する(3)で書いたソースを書き換えてみる。
array_slice( 配列 , 開始位置 , 取得する要素の数)
っていう感じで書けばいいらしい。3つ目の取得する要素の数は省略可能で、その場合は2番目のパラメータで指定した位置以降全部の要素が取り出せるということらしい。んじゃ今回のソースで言うと
array_slice( 配列 , 最新のもの , 10件以下の場合はその件数、以上なら10)
っていう書き方でいいんかな。今までに用意してた変数でいくとこう。
array_slice( $news_list , 0 , $view_count)
配列をarray_reverseで順番を逆にしているから最新のインデックスは0、件数については前の記事で用意した$view_countを使用するっていう風に考えた。そうすると書き加えたソースはこんな感じになった。(その周辺だけ抜粋)
表示結果は一緒なんだけど、なんか・・・行数増えたな。これって使った方がいいんかな。
中身の動きとしては前回のは配列全部が$news_listに入ってるけど繰り返し処理されるのは最大表示件数分のみで、以降の中身は放置。今回のarray_sliceを使うと、新しい変数$news_list2に予め必要な件数分だけの配列が代入されてる状態になるっていう違い。
当然画面には10件しか表示されないので、print_rでそれぞれの変数に入ってる配列の中身を確認したらちゃんと要素数がそうなってるって分かった。
例えば配列の要素数が何百とかになるならこういう風に必要な数だけ取り出したものを使うようにした方がいいとかいう感じなんかな。その辺りの事情がよく分からない。他の場所でもその件数分だけが入った配列が必要な場合はこの関数使ってそういう変数を用意しとけば便利なのか。
とりあえず使い方は分かったからひとまず保留。
<< 簡単なお知らせを表示する(3) | 簡単なお知らせを表示する(4) >>
トラックバック
このエントリーのトラックバックURL:
http://redline.hippy.jp/cgi/mt/mt-tb.cgi/209
