Maison  >  Article  >  développement back-end  >  fonction php array_slice() qui renvoie une partie sélectionnée d'un tableau

fonction php array_slice() qui renvoie une partie sélectionnée d'un tableau

黄舟
黄舟original
2017-11-08 14:18:512840parcourir

Exemple

Commencez à supprimer le deuxième élément du tableau et renvoyez tous les éléments jusqu'à la fin du tableau :

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

Définition et utilisation

array_slice () La fonction renvoie la partie sélectionnée du tableau.

Remarque : Si le tableau a une clé chaîne , le tableau renvoyé conservera la clé (voir exemple 4).

Syntaxe

array_slice(array,start,length,preserve)
Paramètre Description
tableau Obligatoire . Spécifie un tableau.
start Obligatoire. valeur numérique. Spécifie la position de départ de l'élément à récupérer. 0 = premier élément. Si la valeur est définie sur un nombre positif, elle sera prise d'avant en arrière. Si la valeur est définie sur un nombre négatif, la valeur absolue du début est prise de l'arrière vers l'avant. -2 signifie commencer de l'avant-dernier élément du tableau.
longueur Facultatif. valeur numérique. Spécifie la longueur du tableau renvoyé. Si la valeur est définie sur un nombre entier, ce nombre d'éléments est renvoyé. Si cette valeur est définie sur un nombre négatif, la fonction terminera la récupération aussi loin de la fin de l'exemple de tableau. Si cette valeur n'est pas définie, tous les éléments commençant à la position définie par le paramètre start jusqu'à la fin du tableau sont renvoyés.
préserver Facultatif. Spécifie si la fonction conserve les noms de clés ou réinitialise les noms de clés. Valeurs possibles :
  • 参数 描述
    array 必需。规定数组。
    start 必需。数值。规定取出元素的开始位置。 0 = 第一个元素。 如果该值设置为正数,则从前往后开始取。如果该值设置为负数,则从后向前取 start 绝对值。 -2 意味着从数组的倒数第二个元素开始。
    length 可选。数值。规定被返回数组的长度。 如果该值设置为整数,则返回该数量的元素。如果该值设置为负数,则函数将在举例数组末端这么远的地方终止取出。如果该值未设置,则返回从 start 参数设置的位置开始直到数组末端的所有元素。 
    preserve 可选。规定函数是保留键名还是重置键名。可能的值:
    • true - 保留键名

    • false - 默认。重置键名

    true - conserver le nom de la clé

  • false - Par défaut. Réinitialiser le nom de la clé
    返回值: 返回数组中的选定部分。
    PHP 版本: 4+
    更新日志 preserve 参数是在 PHP 5.0.2 中新增的。
Détails techniquespreserve est nouveau dans PHP 5.0.2.
Valeur renvoyée : Renvoie la partie sélectionnée du tableau.
Version PHP : 4+
Journal de mise à jour :

更多实例

实例 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>"; 
} 
?>


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn