Suppose we have two arrays, one is the student's name and the other is the corresponding grades, and we want to combine them into an associative array of "name => grades":
<?php
$names = ['Alice', 'Bob', 'Charlie'];
$scores = [85, 92, 78];
$results = array_combine($names, $scores);
print_r($results);
?>
Output:
Array
(
[Alice] => 85
[Bob] => 92
[Charlie] => 78
)
The array length must be the same <br> If the lengths of $keys and $values are inconsistent, array_combine will return false . It is recommended to check the length of two arrays before use:
if (count($keys) === count($values)) {
$combined = array_combine($keys, $values);
} else {
echo "Array length mismatch,Unable to merge";
}
Elements in key array must be unique <br> The keys of the associative array must be unique, otherwise the subsequent elements will overwrite the previous one.
Array cannot be empty <br> Passing an empty array incoming will cause the function to fail and return false .
Sometimes you may need to quickly generate a query condition array based on the parameter names and values passed in by the front end:
<?php
$paramNames = ['name', 'age', 'city'];
$paramValues = ['Alice', 25, 'Beijing'];
$queryConditions = array_combine($paramNames, $paramValues);
print_r($queryConditions);
?>
The generated array of query conditions can be used directly for database queries or other processing.
When processing existing multi-dimensional arrays, sometimes you want to extract the keys and values of a certain dimension and then synthesize a new array:
<?php
$users = [
['id' => 1, 'name' => 'Alice'],
['id' => 2, 'name' => 'Bob'],
['id' => 3, 'name' => 'Charlie'],
];
$ids = array_column($users, 'id');
$names = array_column($users, 'name');
$userMap = array_combine($ids, $names);
print_r($userMap);
?>
Output:
Array
(
[1] => Alice
[2] => Bob
[3] => Charlie
)
Suppose we obtain two arrays from an interface, one is the parameter name and the other is the corresponding parameter value:
<?php
$paramKeys = ['action', 'id', 'format'];
$paramValues = ['getUser', '12345', 'json'];
$queryArray = array_combine($paramKeys, $paramValues);
$url = 'https://gitbox.net/api?' . http_build_query($queryArray);
echo $url;
?>
Output:
https://gitbox.net/api?action=getUser&id=12345&format=json
This allows dynamically constructing the request URL, simplifying parameter management.