Using Nested Loops and Arrays in PHP for Finding Integer Pairs

Introduction

Welcome to our programming practice lesson! Are you ready for a challenging yet exciting task involving nested loops and arrays? We will unravel the skill of using nested loops to search through two arrays. Brace yourself for a remarkable journey of practical learning. Let's get started!

Task Statement

Imagine a scenario where you are given two lists of integers. Your task is to write a function that retrieves and returns pairs of integers. The first item of the pair will be from the first list, while the second one will come from the second list. It's crucial to remember that the first element must be less than the second.

The sequence of pairs in your output should align with the order they appear in the input lists. For instance, given the lists [1, 3, 7] and [2, 8, 9], the function should return ["1 2", "1 8", "1 9", "3 8", "3 9", "7 8", "7 9"]. It will pose a challenge if no pairs exist or if any input list is empty. Let's delve into this task step by step to uncover the solution!

Building the Solution: Step 1

Before venturing into the code, let's decode the problem. Nested looping fits perfectly here.

Start by creating an empty array named $result to store our pairs.

PHP
<?php

function retrievePairs($list1, $list2) {
    $result = [];

Creating your function and data structure first is a wise strategy!

Building the Solution: Step 2

Now, the focus turns to forming the nested loops. You need to iterate over both lists, and for this, you'll need nested loops. An outer loop will select one element from the first list, and an inner loop will scan through each element of the second list.

PHP
<?php

function retrievePairs($list1, $list2) {
    $result = [];
    foreach ($list1 as $i) {
        foreach ($list2 as $j) {
            // Our logic goes here
        }
    }
    return $result;
}

In this setup, every element in $list1 is represented by $i, and for each $i, $j represents an element in $list2.

Building the Solution: Step 3

With our loops ready, it's time to incorporate the logic. We run a check at this point: Is the element $i from $list1 less than the element $j from $list2? If true, we insert the concatenated string "$i $j" into our $result array.

PHP
<?php

function retrievePairs($list1, $list2) {
    $result = [];
    
    // Start of the outer loop: iterating through elements of list1
    foreach ($list1 as $i) {
        // Start of the inner loop: iterating through elements of list2 for each element of list1
        foreach ($list2 as $j) {
            // Check if the element from list1 is less than the element from list2
            if ($i < $j) {
                // Add the valid pair to the result array
                $result[] = "$i $j";
            }
        }
    }
    // Return the final array of pairs
    return $result;
}

$list1 = [1, 3, 7];
$list2 = [2, 8, 9];
$res = retrievePairs($list1, $list2);

// Print each pair from the result array
foreach ($res as $pair) {
    echo "$pair\n";
}
// Outputs:
1 2
1 8
1 9
3 8
3 9
7 8
7 9

During each execution of our inner loop, we perform this check and store the pairs that comply with our condition.

Sign up

Join the 1M+ learners on CodeSignal

Be a part of our community of 1M+ users who develop and demonstrate their skills on CodeSignal