Heim > Backend-Entwicklung > PHP-Problem > PHP-Array-Lernen: Wie man Elementfragmente abfängt (auf zwei Arten)

PHP-Array-Lernen: Wie man Elementfragmente abfängt (auf zwei Arten)

青灯夜游
Freigeben: 2023-03-12 07:24:02
Original
7134 Leute haben es durchsucht

Im vorherigen Artikel „PHP-Array-Lernen: So entfernen Sie beliebige Elemente“ haben wir die Methode vorgestellt, mit der Funktion array_splice() ein oder mehrere Elemente eines Arrays zu löschen. Dieses Mal setzen wir das Studium von PHP-Arrays fort und stellen die Methode zum Abfangen von Arrays und zum Erhalten einiger Elemente vor. Interessierte Freunde können mehr darüber erfahren~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);

?>
Nach dem Login kopieren

输出结果为:

PHP-Array-Lernen: Wie man Elementfragmente abfängt (auf zwei Arten)

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)
Nach dem Login kopieren

该函数支持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);

?>
Nach dem Login kopieren

输出结果为:

PHP-Array-Lernen: Wie man Elementfragmente abfängt (auf zwei Arten)

可以看出,在截取数组操作上,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);
?>
Nach dem Login kopieren

输出结果为:

PHP-Array-Lernen: Wie man Elementfragmente abfängt (auf zwei Arten)

参数$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);
?>
Nach dem Login kopieren

输出结果为:

PHP-Array-Lernen: Wie man Elementfragmente abfängt (auf zwei Arten)

参数$preserve

In früheren Studien haben wir gelernt, dass Sie Substr zum Abfangen von Strings und zum Erhalten von Teilstrings verwenden können. und mb_substr(). Was passiert also, wenn das Array abgefangen wird und Teilelemente des Arrays zurückgegeben werden? Wie machen wir das? Hier sind zwei Methoden, die wir Ihnen vorstellen möchten.

Methode 1: Funktion array_splice() verwenden

PHP-Array-Lernen: Wie man Elementfragmente abfängt (auf zwei Arten)Ja, Funktion array_splice()! Wir wissen, dass die Funktion array_splice() Array-Elemente hinzufügen, löschen und ersetzen kann. Wie kann sie ein Array abfangen?

Das liegt daran, dass die Funktion array_splice(), wenn sie einige Elemente des Arrays löscht, diese gelöschten Elemente in ein neues Array umwandelt und dann das neue Array zurückgibt. Daher kann die Funktion array_splice() zum Abfangen von Array-Fragmenten verwendet werden. Sehen wir uns unten ein kleines Beispiel an:

<?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);
?>
Nach dem Login kopieren

Das Ausgabeergebnis ist:
PHP-Array-Lernen: Wie man Elementfragmente abfängt (auf zwei Arten)

🎜OK! Mit der Funktion array_splice($array,$start,$length) können wir das Array-Fragment der angegebenen Länge ($length-Wert) abfangen. <strong>Denken Sie daran, dass die Funktion array_splice() das ursprüngliche Array ändert! </strong>🎜🎜Da die Löschfunktion der Funktion array_splice() im vorherigen Artikel ausführlich beschrieben wurde, werde ich sie hier nicht im Detail vorstellen. Wenn Sie es nicht verstehen, können Sie „🎜PHP Array Learning“ lesen : So entfernen Sie alle Elemente🎜". Als nächstes lernen wir die zweite Methode zum Abfangen eines Arrays kennen! 🎜🎜<span style="max-width:90%"><strong>Methode 2: Funktion array_slice() verwenden</strong></span>🎜🎜array_slice() ist eine von PHP bereitgestellte Funktion zum Abfangen von Arrays Extrahiert ein Fragment aus einem Array. Werfen wir einen Blick auf die Funktion array_slice(): 🎜rrreee🎜Diese Funktion unterstützt zwei erforderliche Parameter: <code>$array und $start, zwei optionale Parameter $length und <code>$preserve.
🎜🎜Der Parameter $array muss nicht eingeführt werden. Der Parameter $start wird verwendet, um die Position (Index) anzugeben, an der das Abfangen beginnen soll Parameter $length stellt die Abfanglänge dar (wenn er weggelassen wird, wird er vom angegebenen Index bis zum Ende des Arrays abgefangen). 🎜rrreee🎜Das Ausgabeergebnis ist: 🎜🎜2 .png🎜🎜Es ist ersichtlich, dass die Funktion array_slice() und die Funktion array_splice() ähnliche Funktionen haben, wenn es um das Abfangen von Array-Operationen geht; die Funktionarray_slice() ändert jedoch nicht das ursprüngliche Array! 🎜🎜Der Parameter $start hat drei Werte:
🎜
  • 🎜 ist 0, 🎜
  • Wenn 🎜 eine positive Zahl ist, wird sie von vorne nach hinten abgefangen. 🎜
  • Wenn 🎜 eine negative Zahl ist, beginnt sie an der Position -start am Ende von $array (d. h. von der rechten Seite des Arrays bis zum). links entsprechend dem Absolutwert), vom hinteren zum vorderen Achsenabschnitt. Beispielsweise bedeutet -2, dass mit dem vorletzten Element des Arrays begonnen wird. 🎜
rrreee🎜Das Ausgabeergebnis ist: 🎜🎜PHP-Array-Lernen: Wie man Elementfragmente abfängt (auf zwei Arten)🎜🎜Der Parameter $length hat auch drei Werte: 🎜
  • 🎜Wenn die Länge eine positive Zahl ist, gibt sie die Anzahl der abgefangenen Elemente an. 🎜
  • 🎜Wenn die Länge eine negative Zahl ist, endet das abgefangene Fragment an einer Positionslänge vom Ende des Arrays 🎜
  • 🎜Wenn es weggelassen wird, wird es von der Startposition bis zum Ende des Arrays abgefangen. 🎜
rrreee🎜Das Ausgabeergebnis ist: 🎜🎜PHP-Array-Lernen: Wie man Elementfragmente abfängt (auf zwei Arten)🎜🎜Der Parameter $preserve gibt an, ob der ursprüngliche Schlüsselname beibehalten werden soll. Der Standardwert ist false, das heißt, er wird nicht beibehalten; Wenn der Wert auf „true“ gesetzt ist, wird der ursprüngliche Schlüsselname beibehalten. Einige Schlüsselnamen. 🎜rrreee🎜Das Ausgabeergebnis ist: 🎜🎜🎜🎜🎜Okay, das ist alles. Wenn Sie noch etwas wissen möchten, können Sie hier klicken. → →🎜php-Video-Tutorial🎜🎜🎜Abschließend empfehle ich ein kostenloses Video-Tutorial zu PHP-Arrays: 🎜PHP-Funktions-Array-Array-Funktions-Video-Erklärung🎜, kommen Sie und lernen Sie! 🎜

Das obige ist der detaillierte Inhalt vonPHP-Array-Lernen: Wie man Elementfragmente abfängt (auf zwei Arten). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage