假设我们有两个数组,一个是学生姓名,另一个是对应的成绩,想将它们组合成一个“姓名 => 成绩”的关联数组:
<?php
$names = ['Alice', 'Bob', 'Charlie'];
$scores = [85, 92, 78];
$results = array_combine($names, $scores);
print_r($results);
?>
输出:
Array
(
[Alice] => 85
[Bob] => 92
[Charlie] => 78
)
数组长度必须相同
如果 $keys 和 $values 长度不一致,array_combine 会返回 false。使用前建议检查两个数组长度:
if (count($keys) === count($values)) {
$combined = array_combine($keys, $values);
} else {
echo "数组长度不匹配,无法合并";
}
键数组中的元素必须唯一
关联数组的键必须是唯一的,否则后面的元素会覆盖前面的。
数组不能为空
空数组传入会导致函数失败并返回 false。
有时你可能需要根据前端传入的参数名和值,快速生成查询条件数组:
<?php
$paramNames = ['name', 'age', 'city'];
$paramValues = ['Alice', 25, 'Beijing'];
$queryConditions = array_combine($paramNames, $paramValues);
print_r($queryConditions);
?>
生成的查询条件数组可以直接用于数据库查询或其他处理。
在处理已有的多维数组时,有时想提取某个维度的键和值,再合成新的数组:
<?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);
?>
输出:
Array
(
[1] => Alice
[2] => Bob
[3] => Charlie
)
假设我们从某个接口获取了两个数组,一个是参数名称,一个是对应参数值:
<?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;
?>
输出:
https://gitbox.net/api?action=getUser&id=12345&format=json
这样就能动态构造请求 URL,简化了参数管理。
相关标签:
array_combine