Home >Backend Development >PHP Problem >PHP array learning how to intercept element fragments (two ways)
In the previous article "PHP Array Learning: How to Remove Any Element", we introduced the method of using the array_splice()
function to delete one or more elements of an array. This time we continue the study of PHP arrays and introduce the method of intercepting arrays and obtaining some elements. Interested friends can learn about it~
In the previous study, we learned about intercepting strings and obtaining sub-elements. Strings can use substr() and mb_substr(). So what if the array is intercepted and partial array elements are returned? How do we do this? Here are two methods to introduce to you.
Method 1: Use array_splice() function
Yes, array_splice() function! We know that the array_splice() function can add, delete, and replace array elements. How can it intercept an array?
That’s because when the array_splice() function deletes some elements of the array, it will form these deleted elements into a new array and then return this new array; therefore, the array_splice() function can be used to intercept the array fragment.
Let’s take a look at the following small example:
<?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); ?>
The output result is:
OK! Using the array_splice($array,$start,$length)
function we can intercept the specified length ($length
based on the array subscript (the value of $start
) value) array fragment. Remember that the array_splice() function will change the original array!
Because the deletion function of the array_splice() function has been described in detail in the previous article, I will not introduce it in detail here. If you don’t understand, you can read "PHP Array Learning How to Remove Any element》. Next we learn about the second method of intercepting an array!
Method 2: Use array_slice() function
array_slice() function is a function provided by PHP to intercept arrays. It can be obtained from Extract a fragment from the array. Let's take a look at the array_slice() function:
array_slice($array,$start,$length,$preserve)
This function supports 2 required parameters: $array
and $start
, two parameters that can be omitted $length
and $preserve
.
Parameter$array
No need to introduce it, parameter$start
is used to specify the position (subscript) to start interception, parameter$ length
represents the interception length (if omitted, it will be intercepted from the specified subscript to the end of the array).
<?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); ?>
The output result is:
It can be seen that the functions of array_slice() function and array_splice() function are similar in intercepting array operations. ;But the array_slice() function will not change the original array!
The parameter $start
has three values:
from the end of $array (that is, positioning from the right side of the array to the left according to the absolute value), starting from the back Cut forward. For example -2
means starting from the second to last element of the array.
<?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); ?>
Parameter
$length also has 3 values:
<?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); ?>
Parameter
$preserve indicates whether to retain the original key name, the default The value is false, that is, it will not be retained; if set to true, the original key name will be retained. <pre class="brush:php;toolbar:false"><?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);
?></pre>
The output result is:
Okay, that’s all. If you want to know anything else, you can click this. → →
php video tutorialFinally, I would like to recommend a free video tutorial on PHP arrays:
PHP function array array function video explanationThe above is the detailed content of PHP array learning how to intercept element fragments (two ways). For more information, please follow other related articles on the PHP Chinese website!