Home >Backend Development >PHP Problem >PHP array learning how to intercept element fragments (two ways)

PHP array learning how to intercept element fragments (two ways)

青灯夜游
青灯夜游Original
2021-08-19 15:48:067130browse

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:

PHP array learning how to intercept element fragments (two ways)

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$arrayNo 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:

PHP array learning how to intercept element fragments (two ways)

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:

  • ## is 0,

    # If
  • ## is a positive number, it will be intercepted from front to back. If
  • is a negative number, it will start from the position
  • -start

    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);
    ?>
  • The output result is:

PHP array learning how to intercept element fragments (two ways)Parameter

$length

also has 3 values:

    If length is a positive number, it indicates the number of intercepted elements;
  • If length is a negative number, then the intercepted fragment will end in the distance array The position of the end length;
  • If omitted, it will be intercepted from the start position 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,1,1);
    var_dump($result);
    
    $result = array_slice($arr,1,-1);
    var_dump($result);
    ?>
  • The output result is:

PHP array learning how to intercept element fragments (two ways)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">&lt;?php header(&quot;Content-type:text/html;charset=utf-8&quot;); $arr = array(10,12,20,25,24); echo &quot;原数组:&quot;; var_dump($arr); echo &quot;截取的数组片段:&quot;; $result = array_slice($arr,1,1,true); var_dump($result); $result = array_slice($arr,1,-1,true); var_dump($result); ?&gt;</pre>The output result is:

PHP array learning how to intercept element fragments (two ways)Okay, that’s all. If you want to know anything else, you can click this. → →

php video tutorial

Finally, I would like to recommend a free video tutorial on PHP arrays:

PHP function array array function video explanation

, come and learn!

The 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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn