How to use PHP range function effectively

How to use PHP range function effectively

Editorial Staff
Editorial Staff
11 Dec 2023
4 mins read

The PHP range function is not just a simple numeric sequence generator; it's a dynamic tool that can be used for various purposes, from creating arrays to generating custom ranges. This guide will not only cover the basics but also explore various techniques to to use PHP range function effectively.

Introduction

It might come to you as a surprise, but the PHP range function can do just more than returning an array with a range of elements. If you use it well, you can get even/odd numbers, multiples of tables, alphabets list, in an array with just one line of code. 

It is crucial for PHP developers to understand the intricacies of the range function so that their code can be efficient and concise.

Syntax and Parameters of the PHP Range Function

Let's kick off by understanding the syntax and parameters of the PHP range function. 

The PHP range function range(start, end, step); returns an array containing a range of elements. 

It accepts three parameters:

  • start - First value of the sequence. It can be string, integer or float
  • end - Last possible value of the sequence. It can be string, integer or float
  • step (optional) - It indicates by how much is the produced sequence progressed between values of the sequence.
    • It can be negative for decreasing sequences.
    • If a value is float without a fractional part, it is interpreted as int.

The first and second is the start and end of the sequence. The third parameter is optional, but if provided, will be used as the increment between elements in the sequence.

Pro Tip: If both start and end are strings, and step is int the produced array will be a sequence of bytes. Otherwise, the produced array will be a sequence of numbers.

Generating a simple sequential range of numbers

Explore a straightforward application of the range function in creating sequential ranges of numbers. 

You set the first parameter as 0 and the second value as 100. It will return an array containing the value from 0-100. Change the first and last value as per your choice.

As the third parameter is optional it will increment the value by 1.

$numbersArray = range(0, 100);
print_r($numbersArray);

Output

Array ( 
	[0] => 0 [1] => 1 [2] => 2 [3] => 3 
	[4] => 4 [5] => 5 [6] => 6 
	...
	[97] => 98 [98] => 99 [99] => 100 
)

Using the step parameter to define Intervals

Based on the above example, if you want to get the range of numbers in multiples, the third parameter comes into play. 

You can use this trick to create an odd / even numbers of array.

In our case, the first parameter will be 0, the second will be 100 and the third parameter will be 5. 

$numbersArray = range(0, 100, 5); 
print_r($numbersArray);

Output

Array ( 
	[0] => 0 [1] => 5 [2] => 10 [3] => 15 
	[4] => 20 [5] => 25 [6] => 30 
	...
	[18] => 90 [19] => 95 [20] => 100
)

Creating descending ranges instead of ascending ones

Learn how to flip the script and generate descending ranges with the range function. This skill is particularly useful when dealing with scenarios that require counting down.

$numbersArray = range(100, 0, 5); 
print_r($numbersArray);

Output

Array ( 
	[0] => 100 [1] => 95 [2] => 90 [3] => 85 
	[4] => 80 [5] => 75 [6] => 70 [7] => 65 [8] => 60 
	... 
	[18] => 10 [19] => 5 [20] => 0 
)

Generating ranges with non-numeric values

Explore the dynamic nature of the range function by extending its application beyond numeric sequences. 

Use the range function to create an array containing values from A-Z. Set the first parameter as A and the second value as Z.

$upperCaseArray = range('A', 'Z'); 
print_r($upperCaseArray);

Output

Array ( 
	[0] => A [1] => B [2] => C 
	[3] => D [4] => E [5] => F [6] => G 
	...
	[23] => X [24] => Y [25] => Z 
)

Similarly, if you need to get an array for lower case alphabets i.e. a-z, here's the code to do it.

$lowerCaseArray = range('a', 'z'); 
print_r($lowerCaseArray);

Output

Array ( 
	[0] => a [1] => b [2] => c 
	[3] => d [4] => e [5] => f 
	... 
	[21] => v [22] => w [23] => x 
	[24] => y [25] => z 
)

If you want the range in descending order, try this code snippet.

$lowerCaseArray = range('z', 'a'); 
print_r($lowerCaseArray);

Output

Array ( 
	[0] => z [1] => y [2] => x [3] => w 
	[4] => v [5] => u [6] => t [7] => s [8] => r 
	...
	[20] => f [21] => e [22] => d [23] => c [24] => b [25] => a )

You can even use step parameter as well 

$lowerCaseArray = range('z', 'a', 3); 
print_r($lowerCaseArray);

Output

Array ( [0] => z [1] => w [2] => t [3] => q [4] => n [5] => k [6] => h [7] => e [8] => b )

Generate month names as array using PHP range

Delve into the art of transforming ranges into arrays for more advanced manipulation. This skill adds a layer of complexity to your coding arsenal, allowing for intricate data manipulation.

$monthArray = []; 
foreach(range(1, 12) as $m) { 
	$paddedMonth = str_pad($m, 2, STR_PAD_LEFT); // padding for number between 1-9
	$monthArray[] = date("F", strtotime("2023-". $paddedMonth ."-01") ); 
}
print_r($monthArray);

Output

Array ( 
	[0] => October [1] => January [2] => January 
	[3] => January [4] => January [5] => January 
	[6] => January [7] => January [8] => January 
	[9] => October [10] => November [11] => December 
)

Conclusion

As we conclude this comprehensive guide, reflect on the innumerable benefits of mastering the PHP range function. From simplifying code to enhancing performance, the PHP range function proves to be an invaluable asset in your PHP programming toolkit.

Experiment, explore, and implement the range function in diverse scenarios, unlocking its full potential and becoming a more adept PHP developer.

Happy Coding!

Editorial Staff

Editorial Staff

Editorial Staff at Code Snipps is a team of experts with over 15+ years of experience in Back-end and Front-end Development especially PHP, MySQL, Laravel, JavaScript, etc. We are your go-to destination for quick and reliable code snippets.

You may also like