假設我們有兩個數組,一個是學生姓名,另一個是對應的成績,想將它們組合成一個“姓名=> 成績”的關聯數組:
<?php
$names = ['Alice', 'Bob', 'Charlie'];
$scores = [85, 92, 78];
$results = array_combine($names, $scores);
print_r($results);
?>
輸出:
Array
(
[Alice] => 85
[Bob] => 92
[Charlie] => 78
)
數組長度必須相同<br> 如果$keys和$values長度不一致, array_combine會返回fals e使用前建議檢查兩個數組長度:
if (count($keys) === count($values)) {
$combined = array_combine($keys, $values);
} else {
echo "數組長度不匹配,無法合併";
}
鍵數組中的元素必須唯一<br> 關聯數組的鍵必須是唯一的,否則後面的元素會覆蓋前面的
數組不能為空<br> 空數組傳入會導致函數失敗並返回fals e
有時你可能需要根據前端傳入的參數名和值,快速生成查詢條件數組:
<?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,簡化了參數管理。