>  기사  >  백엔드 개발  >  배열의 선택된 부분을 반환하는 PHP 함수 array_slice()

배열의 선택된 부분을 반환하는 PHP 함수 array_slice()

黄舟
黄舟원래의
2017-11-08 14:18:512993검색

배열의 두 번째 요소를 꺼내기 시작하고 배열 끝까지의 모든 요소를 ​​반환합니다.

<?php
$a=array("red","green","blue","yellow","brown");
print_r(array_slice($a,2));
?>

정의 및 사용법

array_slice() 함수는 배열의 선택된 부분을 반환합니다.

참고: 배열에 string키가 있는 경우 반환된 배열은 키를 유지합니다(예제 4 참조).

Syntax

array_slice(array,start,length,preserve)
Parameters Description
array 필수입니다. 배열을 지정합니다.
start 필수입니다. 수치. 검색할 요소의 시작 위치를 지정합니다. 0 = 첫 번째 요소. 값을 양수로 설정하면 앞에서 뒤로 가져옵니다. 값을 음수로 설정하면 start의 절대값은 뒤에서 앞으로 가져옵니다. -2는 배열의 두 번째 요소부터 마지막 ​​요소까지 시작한다는 의미입니다.
길이 선택사항. 수치. 반환된 배열의 길이를 지정합니다. 값이 정수로 설정되면 해당 요소 수가 반환됩니다. 이 값이 음수로 설정되면 함수는 배열 끝에서 이 값을 가져오는 것을 종료합니다. 이 값을 설정하지 않으면 start 매개변수에 설정된 위치부터 배열의 끝까지 모든 요소가 반환됩니다.
preserve 선택사항. 함수가 키 이름을 유지할지 아니면 키 이름을 재설정할지 여부를 지정합니다. 가능한 값:
  • true - 키 이름 유지

  • false - 기본값. 키 이름 재설정

기술 세부 정보

반환 값: 배열에서 선택한 부분을 반환합니다.
PHP 버전: 4+
Change log: 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(&#39;name&#39;=> &#39;name1&#39;,&#39;sex&#39; => &#39;sex1&#39;,&#39;job&#39; => &#39;job1&#39;), 
              array(&#39;name&#39;=> &#39;name2&#39;,&#39;sex&#39; => &#39;sex2&#39;,&#39;job&#39; => &#39;job2&#39;), 
              array(&#39;name&#39;=> &#39;name3&#39;,&#39;sex&#39; => &#39;sex3&#39;,&#39;job&#39; => &#39;job3&#39;), 
              array(&#39;name&#39;=> &#39;name4&#39;,&#39;sex&#39; => &#39;sex4&#39;,&#39;job&#39; => &#39;job4&#39;), 
              array(&#39;name&#39;=> &#39;name5&#39;,&#39;sex&#39; => &#39;sex5&#39;,&#39;job&#39; => &#39;job5&#39;), 
              array(&#39;name&#39;=> &#39;name6&#39;,&#39;sex&#39; => &#39;sex6&#39;,&#39;job&#39; => &#39;job6&#39;), 
              array(&#39;name&#39;=> &#39;name7&#39;,&#39;sex&#39; => &#39;sex7&#39;,&#39;job&#39; => &#39;job7&#39;), 
              array(&#39;name&#39;=> &#39;name8&#39;,&#39;sex&#39; => &#39;sex8&#39;,&#39;job&#39; => &#39;job8&#39;), 
              array(&#39;name&#39;=> &#39;name9&#39;,&#39;sex&#39; => &#39;sex9&#39;,&#39;job&#39; => &#39;job9&#39;), 
              array(&#39;name&#39;=> &#39;name10&#39;,&#39;sex&#39; => &#39;sex10&#39;,&#39;job&#39; => &#39;job10&#39;), 
              array(&#39;name&#39;=> &#39;name11&#39;,&#39;sex&#39; => &#39;sex11&#39;,&#39;job&#39; => &#39;job11&#39;), 
              array(&#39;name&#39;=> &#39;name12&#39;,&#39;sex&#39; => &#39;sex12&#39;,&#39;job&#39; => &#39;job12&#39;), 
     ); 
 
 //计算总记录条数 
 $num = count($arr); 
 //规定每页显示的条数 
 $perpage = 3; 
 //计算页数 
 $pages = ceil($num/$perpage); 
 //echo $num,$perpage,$pagecount;exit; 
 if(is_numeric($_REQUEST[&#39;page&#39;])) 
 { 
  if($_REQUEST[&#39;page&#39;]<1){ 
   $page = 1; 
  }elseif($_REQUEST[&#39;page&#39;]>$pages) 
  { 
   $page = $pages; 
  }else{ 
  $page = $_REQUEST[&#39;page&#39;]; 
   } 
 }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[&#39;name&#39;]; ?></td> 
  <td><?php echo  $v[&#39;sex&#39;]; ?></td> 
  <td><?php echo  $v[&#39;job&#39;]; ?></td> 
 </tr> 
<?php 
} 
?> 
</table> 
<?php 
if($page>1){ 
 echo "<a href=&#39;?page=1&#39;>首页</a>"; 
 echo "<a href=&#39;?page=".($page-1)."&#39;>上一页</a>"; 
}
if($page<$pages) 
{ 
 echo "<a href=&#39;?page=".($page+1)."&#39;>下一页</a>"; 
 echo "<a href=&#39;?page=".$pages."&#39;>末页</a>"; 
} 
?>


위 내용은 배열의 선택된 부분을 반환하는 PHP 함수 array_slice()의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.