例
配列の 2 番目の要素の取り出しを開始し、配列の末尾までのすべての要素を返します:
<?php $a=array("red","green","blue","yellow","brown"); print_r(array_slice($a,2)); ?>
定義と使用法
array_slice() 関数は、配列の選択された部分を返します。
注: 配列に stringkey がある場合、返される配列にはキーが保持されます (例 4 を参照)。
構文
array_slice(array,start,length,preserve)
パラメータ | 説明 |
配列 | 必須。配列を指定します。 |
開始 | 必須。数値。取得する要素の開始位置を指定します。 0 = 最初の要素。 値を正の数に設定すると、前から後ろに向かって取得されます。値が負の数に設定されている場合、start の絶対値が後ろから前に取得されます。 -2 は、配列の最後から 2 番目の要素から開始することを意味します。 |
長さ | はオプションです。数値。返される配列の長さを指定します。 値が整数に設定されている場合は、その数の要素が返されます。この値が負の数に設定されている場合、関数はサンプル配列の終わりから遠く離れたところでフェッチを終了します。この値が設定されていない場合は、start パラメータで設定された位置から配列の末尾までのすべての要素が返されます。 |
保存 | オプション。関数がキー名を保持するか、キー名をリセットするかを指定します。可能な値:
|
技術的な詳細
戻り値: | 配列の選択された部分を返します。 |
PHP バージョン: | 4+ |
変更ログ: | preserve パラメータは PHP 5.0.2 の新機能です。 |
更多实例
实例 1
从数组的第一个元素开始取出,并返回两个元素:
<?php $a=array("red","green","blue","yellow","brown"); print_r(array_slice($a,1,2)); ?>
实例 2
使用负的 start 参数:
<?php $a=array("red","green","blue","yellow","brown"); print_r(array_slice($a,-2,1)); ?>
实例 3
带有设置为 true 的 preserve 参数:
<?php $a=array("red","green","blue","yellow","brown"); print_r(array_slice($a,1,2,true)); ?>
实例 4
带有字符串和整数键名:
<?php $a=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow","e"=>"brown"); print_r(array_slice($a,1,2)); $a=array("0"=>"red","1"=>"green","2"=>"blue","3"=>"yellow","4"=>"brown"); print_r(array_slice($a,1,2)); ?>
array_slice函数实现的分页方法非常好用,分享如下:
<?php //假定一个结果集二维数组: $arr = array(array('name'=> 'name1','sex' => 'sex1','job' => 'job1'), array('name'=> 'name2','sex' => 'sex2','job' => 'job2'), array('name'=> 'name3','sex' => 'sex3','job' => 'job3'), array('name'=> 'name4','sex' => 'sex4','job' => 'job4'), array('name'=> 'name5','sex' => 'sex5','job' => 'job5'), array('name'=> 'name6','sex' => 'sex6','job' => 'job6'), array('name'=> 'name7','sex' => 'sex7','job' => 'job7'), array('name'=> 'name8','sex' => 'sex8','job' => 'job8'), array('name'=> 'name9','sex' => 'sex9','job' => 'job9'), array('name'=> 'name10','sex' => 'sex10','job' => 'job10'), array('name'=> 'name11','sex' => 'sex11','job' => 'job11'), array('name'=> 'name12','sex' => 'sex12','job' => 'job12'), ); //计算总记录条数 $num = count($arr); //规定每页显示的条数 $perpage = 3; //计算页数 $pages = ceil($num/$perpage); //echo $num,$perpage,$pagecount;exit; if(is_numeric($_REQUEST['page'])) { if($_REQUEST['page']<1){ $page = 1; }elseif($_REQUEST['page']>$pages) { $page = $pages; }else{ $page = $_REQUEST['page']; } }else{ $page = 1; } $start = ($page-1)*$perpage; $newpage = array_slice($arr,$start,$perpage,true); //print_r($newpage);exit; ?> <table cellpadding="0" cellspacing="0" border="1"> <tr> <td>name</td> <td>sex</td> <td>job</td> </tr> <?php foreach($newpage as $k => $v) { ?> <tr> <td><?php echo $v['name']; ?></td> <td><?php echo $v['sex']; ?></td> <td><?php echo $v['job']; ?></td> </tr> <?php } ?> </table> <?php if($page>1){ echo "<a href='?page=1'>首页</a>"; echo "<a href='?page=".($page-1)."'>上一页</a>"; } if($page<$pages) { echo "<a href='?page=".($page+1)."'>下一页</a>"; echo "<a href='?page=".$pages."'>末页</a>"; } ?>
以上が配列の選択された部分を返すphp関数array_slice()の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。