Introduction on Associative Array
An array is a collection of similar and dissimilar data types. An array stores in a variable related data. We need arrays to create and store these many numbers of variables value in one variable. There are three types of an array in PHP. Numeric Arrays, Associative Arrays, and Multidimensional Arrays. An associative array is in the form of key-value pair, where the key is the index of the array and the value is the element of the array. Here the key can be user-defined. It is similar to the numeric array, but the keys and values which are stored in the form of a key-value pair.
In this topic, we are going to learn about the Associative Array in PHP.
Syntax
//First Way
$input = array("key1"=>"value1", "key2"=>"value2", "key3"=>"value3");
//Second Way
$input["key1"] = value1;
$input["key2"] = value2;
$input["key3"] = value3;
where $input is the array name, key1 is the index of the array element, and value1 is the value of the array element
How to Create an Associative Array in PHP?
The associative array is declared using an array keyword. The key value in the array is declared using the ‘=>’ arrow. There are two ways to create an associative array.
Following are the example.
Code:
<?php
// create associative array
// first way
$family = array("father" => "Mohan", "mother"=>"Sita", "son"=> "Raj" ,"daughter"=> "Mona");
// second way
$family["father"] = "Mohan";
$family["mother"] = "Sita";
$family["son"] = "Raj";
$family["daughter"] = "Mona";
?>
How to Traverse Associative Array in PHP using various methods
There are two methods through which we can traverse the associative array. One is the foreach loop, and the second is for a loop.
Method #1
In this example, an array is declared and named as a $family. This array is in the key-value form where the keys are names of relations like Father, Mother, Son, Daughter. And each key holds the name of the relationship like the first value for index Father is Mohan, the second value for index Mother is Sita, the third value for index Son is Raj, the fourth value for index Daughter is Mona. To traverse this array, we use a foreach loop, in which we print both keys as Father, Mother, Son, Daughter and values as Mohan, Sita, Raj and Mona of the array.
Code:
<?php
//example of the associative array
$family = array("father" => "Mohan", "mother"=>"Sita", "son"=> "Raj" ,"daughter"=> "Mona");
//first method to traverse the associative array
foreach($family as $key=>$value) {
echo $key .' is '.$value;
echo '<br>';
}
?>
Method #2
In this example, we will use the same array family as in the previous example and traverse using for loop. Also, we will be using the array_keys function to get the keys of the array, which are father, mother, son, and daughter. These keys are returned in the form of an array. The array_keys function takes an input array as the parameter and outputs an indexed array. Now to iterate through this loop, we will use for loop and print the keys and values as required.
Code:
<?php
// Example to demonstrate for loop
$family = array("father" => "Mohan", "mother"=>"Sita", "son"=> "Raj" ,"daughter"=> "Mona");
$length = count($family);
$keys = array_keys($family);
// for loop to traverse associative array
for($i=0; $i<$length; $i++) {
echo "<br>". $keys[$i] . " => " . $family[$keys[$i]];
}
?>
Output:
Advantages of Associative Array in PHP
- There are different functions that work to merge two associative arrays.
- It is similar to the user list, stack, queue, etc.
- Indexes in the array are used, which are helpful in remembering the data
- These indexes are user-defined and can be changed accordingly.
- The superglobal arrays like $_POST, $_GET, $_SESSION arrays also support associative arrays.
Sorting of Associative Array by Value in PHP
An associative array can be sorted in two ways based on the key and based on value. Here we will learn about sorting the associative array by value. There are two inbuilt php functions like asort() and arsort(), which are used for sorting of the associative array by value in alphabetical order.
Let’s learn this with an example.
1. asort(): performs a sort on associative array according to the value in ascending order
Code:
<?php
// example to demonstrate asort() function on associative array by value in ascending order
$family = array("father" => "Mohan", "mother"=>"Sita", "son"=> "Raj" ,"daughter"=> "Mona");
print_r($family);
asort($family);
echo "<br>";
print_r($family);
?>
Output:
2. arsort(): performs a sort on associative array according to the value in descending order
Code:
<?php
// example to demonstrate asort() function on associative array by value in descending order
$family = array("father" => "Mohan", "mother"=>"Sita", "son"=> "Raj" ,"daughter"=> "Mona");
echo "<br>Before Sort";
print_r($family);
arsort($family);
echo "<br>After Sort";
print_r($family);
?>
Output:
Sorting of Associative Array by Key in PHP
As associative array can be sorted by value in ascending order. In a similar way, the associative array can be sorted by key alphabetically both in ascending order and in descending order, as shown in the below example.
1. ksort(): performs a sort on associative array according to the key in ascending order
Code:
<?php
// example to demonstrate ksort() function on associative array by key in ascending order
$family = array("father" => "Mohan", "mother"=>"Sita", "son"=> "Raj" ,"daughter"=> "Mona");
echo "<br>Before Sort";
print_r($family);
ksort($family);
echo "<br>After Sort";
print_r($family);
?>
Output:
2. krsort(): performs a sort on associative array according to the key in descending order
Code:
<?php
// example to demonstrate krsort() function on associative array by key in descending order
$family = array("father" => "Mohan", "mother"=>"Sita", "son"=> "Raj" ,"daughter"=> "Mona");
echo "<br>Before Sort";
print_r($family);
krsort($family);
echo "<br>After Sort";
print_r($family);
?>
Output:
Conclusion
Programs starting from basic like the syntax, creating the array, and traverse through the array are explained. Also, topics like advantages of the associative array and how to perform sorting on the associative array are also mentioned.
Recommended Articles
This is a guide to Associative Array in PHP. Here we discuss how to create an Associative Array, Traverse Associative Array in PHP and sorting Arrays by value and key. You may also look at the following article to learn more –