Home >Backend Development >PHP Problem >How to split an array in php

How to split an array in php

PHPz
PHPzOriginal
2023-05-19 12:42:092314browse

In PHP programming, we often encounter situations where we need to split a large array into several small arrays. This is mainly done to facilitate program processing and operation and to avoid excessive looping or traversal operations. Let's learn how to split an array in PHP.

1. Use the array_chunk() function to split the array

PHP provides a very simple function array_chunk() to split the array. The function of this function is to split an array into several small arrays of specified length.

Usage is as follows:

array array_chunk (array $array , int $size [, bool $preserve_keys = false ] )

Among them, $array is the array that needs to be split, $size is the length of each small array specified, and $preserve_keys is used to indicate whether to retain the original array. Key name. If $preserve_keys is set to true, the key names in the original array are retained.

The following is a sample code:

<?php
  $arr = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm');
  $new_arr = array_chunk($arr, 4);

  print_r($new_arr);
?>

The running results are as follows:

Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
            [2] => c
            [3] => d
        )

    [1] => Array
        (
            [0] => e
            [1] => f
            [2] => g
            [3] => h
        )

    [2] => Array
        (
            [0] => i
            [1] => j
            [2] => k
            [3] => l
        )

    [3] => Array
        (
            [0] => m
        )

)

2. Use the array_slice() function to split the array

In addition to array_chunk() In addition to the function, you can also use the array_slice() function to split the array.

The array_slice() function is to return a subarray of specified length. Its first parameter is the array to be split, the second parameter is the position in the array to start splitting, and the third parameter is the length to be split. If not specified, it returns from the starting position to the end of the array. of all elements.

The following is a sample code:

<?php
  $arr = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm');
  $new_arr = array();
  $offset = 0;
  $length = 4;

  while ($offset < count($arr)) {
    $temp_arr = array_slice($arr, $offset, $length);
    array_push($new_arr, $temp_arr);
    $offset += $length;
  }

  print_r($new_arr);
?>

The running result is the same as the example of the previous code.

3. Use a for loop to traverse and split the array

In addition to using the above functions, you can also use a for loop to traverse and split the array.

The following is a sample code:

<?php
  $arr = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm');
  $new_arr = array();
  $length = 4;

  for ($i = 0; $i < count($arr); $i += $length) {
    $temp_arr = array();
    for ($j = $i; $j < $i + $length; $j++) {
      if (isset($arr[$j])) {
        array_push($temp_arr, $arr[$j]);
      }
    }
    array_push($new_arr, $temp_arr);
  }

  print_r($new_arr);
?>

The running results are also the same as the examples of the first two pieces of code.

Summary

Using PHP to split arrays is a requirement that is often encountered in programming. Learning common functions and traversal methods can greatly improve programming efficiency. This article introduces three methods of splitting an array. Using the array_chunk() function is the simplest and most convenient. If you need to retain the key names of the original array, you can use this function; using the array_slice() function requires manually specifying the offset and length of the array. , which is more troublesome; although using a for loop to traverse the code is relatively complex, it is more flexible. In actual development, you can choose a suitable method according to your needs.

The above is the detailed content of How to split an array in php. 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