Maison  >  Article  >  développement back-end  >  Tableau PHP apprenant à intercepter des fragments d'éléments (deux manières)

Tableau PHP apprenant à intercepter des fragments d'éléments (deux manières)

青灯夜游
青灯夜游original
2021-08-19 15:48:067018parcourir

Dans l'article précédent "Apprentissage des tableaux PHP : Comment supprimer des éléments", nous avons présenté la méthode d'utilisation de la fonction array_splice() pour supprimer un ou plusieurs éléments d'un tableau. Cette fois, nous continuons l'étude des tableaux PHP et introduisons la méthode d'interception des tableaux et d'obtention de certains éléments. Les amis intéressés peuvent en apprendre davantage ~array_splice()函数删除数组的一个或多个元素的方法。这次我们继续PHP数组的学习,介绍一下截取数组,获取部分元素的方法,感兴趣的朋友可以学习了解一下~

在之前的学习中,我们了解到截取字符串、获取子串可以使用substr()和mb_substr()。那么如果是截取数组、返回部分数组元素呢?我们要怎么操作?下面给大家介绍两种方法。

方法一:使用array_splice()函数

对的,array_splice()函数!我们知道array_splice()函数可以添加、删除和替换数组元素,怎么又可以截取数组了呢?

那是因为array_splice()函数在删除数组的一部分元素时,会将这些被删除的元素组成为一个新数组,然后返回这个新数组;因此array_splice()函数可以用来截取数组片段。

我们来看下面一个小例子:

<?php
header("Content-type:text/html;charset=utf-8");
$arr = array(10,12,20,25,24);
echo "原数组:";
var_dump($arr); 

echo "截取的数组片段:";
$result = array_splice($arr,2);  //截取从下标2开始的全部数组元素
var_dump($result);

$arr = array(10,12,20,25,24);
$result = array_splice($arr,1,2);//截取从下标1开始的两个元素
var_dump($result);

?>

输出结果为:

Tableau PHP apprenant à intercepter des fragments déléments (deux manières)

OK!使用array_splice($array,$start,$length)函数我们可以根据数组下标($start的值),截取指定长度($length的值)的数组片段。要记住array_splice()函数会改变原数组!

因为array_splice()函数的删除功能在之前的文章中详细叙述过了,这里就不具体介绍了,不懂的可以去看《PHP数组学习之怎么去除任意元素》。接下来我们了解第二种截取数组的方法!

方法二:使用array_slice()函数

array_slice()函数就是PHP提供的用来截取数组的一个函数,可以从数组中提取出一个片段。下面我们来了解一下array_slice()函数:

array_slice($array,$start,$length,$preserve)

该函数支持2个必需的参数:$array$start,两个可省略的参数$length$preserve

参数$array就不必介绍了吧,参数$start用于指定开始截取的位置(下标),参数$length表示截取长度(如果省略,则会从指定下标开始一直截取到数组末尾)。

<?php
header("Content-type:text/html;charset=utf-8");
$arr = array(10,12,20,25,24);
echo "原数组:";
var_dump($arr); 

echo "截取的数组片段:";
$result = array_slice($arr,2); //截取从下标2开始的全部数组元素
var_dump($result);

$result = array_slice($arr,1,2); //截取从下标1开始的两个元素
var_dump($result);

?>

输出结果为:

Tableau PHP apprenant à intercepter des fragments déléments (deux manières)

可以看出,在截取数组操作上,array_slice()函数和array_splice()函数的功能是类似的;但array_slice()函数不会改变原数组!

参数$start有3种取值情况:

  • 为0,

  • 为正数,则从前往后截取。

  • 为负数,则从距离 $array 末端 -start 的位置开始(即按绝对值从数组右侧开始向左侧定位),从后往前截取。例如 -2 意味着从数组的倒数第二个元素开始。

<?php
header("Content-type:text/html;charset=utf-8");
$arr = array(10,12,20,25,24);
echo "原数组:";
var_dump($arr); 

echo "截取的数组片段:";
$result = array_slice($arr,2);
var_dump($result);

$result = array_slice($arr,-2);
var_dump($result);
?>

输出结果为:

Tableau PHP apprenant à intercepter des fragments déléments (deux manières)

参数$length也有3种取值情况:

  • 如果 length 为正数,那么表示截取的元素个数;

  • 如果 length 为负数,那么截取的片段将终止在距离数组末端 length 的位置;

  • 如果省略,那么将从 start 位置开始,一直截取到数组的末尾。

<?php
header("Content-type:text/html;charset=utf-8");
$arr = array(10,12,20,25,24);
echo "原数组:";
var_dump($arr); 

echo "截取的数组片段:";
$result = array_slice($arr,1,1);
var_dump($result);

$result = array_slice($arr,1,-1);
var_dump($result);
?>

输出结果为:

Tableau PHP apprenant à intercepter des fragments déléments (deux manières)

参数$preserve

Dans des études précédentes, nous avons appris que vous pouvez utiliser substr pour intercepter des chaînes et obtenir des sous-chaînes. () et mb_substr(). Et si le tableau est intercepté et que des éléments partiels du tableau sont renvoyés ? Comment faisons-nous cela ? Voici deux méthodes à vous présenter.

Méthode 1 : Utiliser la fonction array_splice()

Tableau PHP apprenant à intercepter des fragments déléments (deux manières)Oui, la fonction array_splice() ! Nous savons que la fonction array_splice() peut ajouter, supprimer et remplacer des éléments d'un tableau. Comment peut-elle intercepter un tableau ?

En effet, lorsque la fonction array_splice() supprime certains éléments du tableau, elle formera ces éléments supprimés dans un nouveau tableau puis renverra le nouveau tableau. Par conséquent, la fonction array_splice() peut être utilisée pour intercepter des fragments de tableau ; Regardons un petit exemple ci-dessous :

<?php
header("Content-type:text/html;charset=utf-8");
$arr = array(10,12,20,25,24);
echo "原数组:";
var_dump($arr); 

echo "截取的数组片段:";
$result = array_slice($arr,1,1,true);
var_dump($result);

$result = array_slice($arr,1,-1,true);
var_dump($result);
?>

Le résultat de sortie est :
Tableau PHP apprenant à intercepter des fragments déléments (deux manières)

🎜OK ! En utilisant la fonction array_splice($array,$start,$length), nous pouvons intercepter la longueur spécifiée ($length$start code>) /code> valeur) fragment de tableau. <strong>N'oubliez pas que la fonction array_splice() modifiera le tableau d'origine ! </strong>🎜🎜Étant donné que la fonction de suppression de la fonction array_splice() a été décrite en détail dans l'article précédent, je ne la présenterai pas en détail ici. Si vous ne comprenez pas, vous pouvez lire "🎜PHP Array Learning. : Comment supprimer des éléments🎜". Nous apprenons ensuite la deuxième méthode d'interception d'un tableau ! 🎜🎜<span style="max-width:90%"><strong>Méthode 2 : Utiliser la fonction array_slice()</strong></span>🎜🎜La fonction array_slice() est celle fournie par PHP pour intercepter les tableaux. Fonction qui extrait un fragment d'un tableau. Jetons un coup d'œil à la fonction array_slice() : 🎜rrreee🎜Cette fonction prend en charge 2 paramètres obligatoires : <code>$array et $start, deux paramètres omis $length et <code>$preserve.
🎜🎜Le paramètre $array n'a pas besoin d'être introduit. Le paramètre $start est utilisé pour spécifier la position (indice) de début de l'interception, et le paramètre $array. le paramètre $length représente la longueur d'interception (si elle est omise, elle sera interceptée depuis l'indice spécifié jusqu'à la fin du tableau). 🎜rrreee🎜Le résultat de sortie est : 🎜🎜2 . png🎜🎜On peut voir que la fonction array_slice() et la fonction array_splice() ont des fonctions similaires lorsqu'il s'agit d'intercepter les opérations sur un tableau ; mais la fonctionarray_slice() ne changera pas le tableau d'origine ! 🎜🎜Le paramètre $start a trois valeurs :
🎜
  • 🎜 est 0, 🎜
  • Si 🎜 est un nombre positif, il sera intercepté d'avant en arrière. 🎜
  • Si 🎜 est un nombre négatif, il commence à partir de la position -start à partir de la fin de $array (c'est-à-dire le positionnement du côté droit du tableau vers la gauche selon la valeur absolue), de l'arrière vers l'interception avant. Par exemple, -2 signifie commencer de l'avant-dernier élément du tableau. 🎜
rrreee🎜Le résultat de sortie est : 🎜🎜Tableau PHP apprenant à intercepter des fragments déléments (deux manières)🎜🎜Le paramètre $length a également trois valeurs : 🎜
  • 🎜Si la longueur est un nombre positif, cela indique le nombre d'éléments interceptés ; 🎜
  • 🎜Si la longueur est un nombre négatif, alors le fragment intercepté se terminera à une position à partir de la fin du tableau ;
  • 🎜En cas d'omission, il sera intercepté de la position de début à la fin du tableau. 🎜
rrreee🎜Le résultat de sortie est : 🎜🎜Tableau PHP apprenant à intercepter des fragments déléments (deux manières)🎜🎜Le paramètre $preserve indique s'il faut conserver le nom de la clé d'origine. La valeur par défaut est false, ce qui signifie qu'elle ne sera pas conservée ; si défini sur true, le nom de clé d'origine sera conservé. 🎜rrreee🎜Le résultat de sortie est : 🎜🎜🎜🎜🎜D'accord, c'est tout si vous voulez savoir autre chose, vous pouvez cliquer dessus. → →🎜Tutoriel vidéo php🎜🎜🎜Enfin, je recommande un tutoriel vidéo gratuit sur les tableaux PHP : 🎜Explication vidéo de la fonction tableau de fonctions PHP🎜, venez apprendre ! 🎜

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