Home >Backend Development >PHP Tutorial >PHP array learning: convert a one-dimensional array into a two-dimensional array containing specified multiple elements

PHP array learning: convert a one-dimensional array into a two-dimensional array containing specified multiple elements

青灯夜游
青灯夜游Original
2021-08-25 19:15:583991browse

In the previous article "PHP Array Learning: How to Exchange Key Names and Value Positions", we learned about two methods of exchanging key names and key values ​​in arrays. If necessary Friends can learn about it~

→Related recommendations: PHP array learning series summary (continuously updated~)

And today This article mainly takes you through splitting arrays and talks about how to use PHP to split a one-dimensional array into a two-dimensional array containing a specified number of elements.

For example, there is such a one-dimensional array

$arr = array(4, 23, 56, 1, 9, 5, 2, 67, 34, 100, 78);

PHP array learning: convert a one-dimensional array into a two-dimensional array containing specified multiple elements

I want to divide this one-dimensional array into a two-dimensional array containing 3 consecutive elements as shown below

PHP array learning: convert a one-dimensional array into a two-dimensional array containing specified multiple elements

How to do this? Here are two ways to split a one-dimensional array into a two-dimensional array containing a specified number of elements.

Method 1: Use the array_slice() function to intercept the array

Implementation idea:

  • Use The array_slice() function intercepts an array fragment of a specified length based on the array subscript, and returns the intercepted subarray.

  • Because the inner layers of the two-dimensional array each contain 3 elements, the positions where array_slice() is used to start splitting the array are 0, 3, 6, and 9 respectively;

  • Use for loop to control the starting position (array subscript), the relationship between i and subscript i*3:

    When i=0, then the starting position It is 0

    When i=1, the starting position is 3

    When i=2, the starting position is 6

    When i=3, the starting position is 9

The implementation code is given below:

<?php
function SplitArray($arr,$n){
	for ($i = 0; $i <= $n; $i++) {
	    $res[] = array_slice($arr, $i * $n, $n);
	}
	var_dump($res);
}
$arr = array(4, 23, 56, 1, 9, 5, 2, 67, 34, 100, 78);
SplitArray($arr,3);
?>

Output result:

PHP array learning: convert a one-dimensional array into a two-dimensional array containing specified multiple elements

Method 2: Use the array_chunk() function to split the array

<?php
$arr = array(4, 23, 56, 1, 9, 5, 2, 67, 34, 100, 78);
$res = array_chunk($arr,3);
var_dump($res);
?>

Output result:

PHP array learning: convert a one-dimensional array into a two-dimensional array containing specified multiple elements

Let me introduce the array_chunk() function to you.

array_chunk(array,size,preserve_keys)The function splits an array into new array chunks, where the optional parameter size specifies how much each new array chunk contains elements, the optional parameter preserve_keys specifies whether to retain the key names in the original array (the default value is false, not retained).

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: convert a one-dimensional array into a two-dimensional array containing specified multiple elements. 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