An array is a special variable, which can hold more than one value at a time.
Task: To merge two array on third empty array and sort third array in ascending order without using inbuilt function
Solution Steps:
1. Take 2 sample array and store them in a varaible.
2. Take one empty array.
3. Merge the first 2 array and store them in empty array.
4. Now sort the new array in ascending order without using PHP in-built function.
Now let’s see the code –
<?php
// Sets up our arrays
$array1 = [1, 30, 5, 7, 9,20,25,3];
$array2 = [2, 4, 6, 8, 10];
$array3 = [];
// Determines how many items we have in each array
$array1_count = count($array1);
$array2_count = count($array2);
// While we still have at least one item in one of the arrays
while ($array1_count || $array2_count)
{
$array1_empty = $array1 == [];
$array2_empty = $array2 == [];
if (!$array1_empty && !$array2_empty)
{
if (current($array1) < current($array2))
{
$array3[] = array_shift($array1);
$array1_count--;
}
else
{
$array3[] = array_shift($array2);
$array2_count--;
}
}
elseif (!$array1_empty)
{
$array3[] = array_shift($array1);
$array1_count--;
}
elseif (!$array2_empty)
{
$array3[] = array_shift($array2);
$array2_count--;
}
}
$merged_unsorted_array = $array3;
for($j = 0; $j < count($array3); $j ++) {
for($i = 0; $i < count($array3)-1; $i ++){
if($array3[$i] > $array3[$i+1]) {
$temp = $array3[$i+1];
$array3[$i+1]=$array3[$i];
$array3[$i]=$temp;
}
}
}
echo "Unsorted array ";
echo "<br>";
print_r($merged_unsorted_array);
echo "<br>";
echo "Sorted array";
echo "<br>";
print_r($array3);
Output :
<?php
// Output
Unsorted array
Array ( [0] => 1 [1] => 2 [2] => 4 [3] => 6 [4] => 8 [5] => 10 [6] => 30 [7] => 5 [8] => 7 [9] => 9 [10] => 20 [11] => 25 [12] => 3 )
Sorted array
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 [9] => 10 [10] => 20 [11] => 25 [12] => 30 )