首頁 >後端開發 >php教程 >如何合併關聯數組、處理缺失鍵、填滿預設值?

如何合併關聯數組、處理缺失鍵、填滿預設值?

DDD
DDD原創
2024-10-20 21:45:29710瀏覽

How to Merge Associative Arrays, Handle Missing Keys, and Fill with Default Values?

合併多個關聯數組並添加具有預設值的缺失列

將關聯數組與不同的鍵集組合以創建統一的數組可能具有挑戰性。這個問題探索了一種實現此目的的方法,所需的輸出是一個數組,其中鍵被合併,缺失的列用預設值填充。

為了實現這一點,建議結合使用array_merge 函數使用精心設計的鍵數組:

$keys = array();
foreach(new RecursiveIteratorIterator(new RecursiveArrayIterator($d)) as $key => $val) {
    $keys[$key] = '';
}

此循環迭代輸入數組中的所有元素,提取唯一鍵並為其分配空值。產生的 $keys 陣列包含最終合併陣列中可能存在的所有鍵。

接下來,每個輸入數組與$keys 數組合併:

$data = array();
foreach($d as $values) {
    $data[] = array_merge($keys, $values);
}

此步驟確保最終數組中的每一行都具有所有可能的鍵,任何缺失的值都用空字串填充。產生的 $data 陣列是所需的合併和完成的陣列。

或者,可以建立一個金鑰對數組並將其與每個輸入數組合並:

$keys = array_keys(call_user_func_array('array_merge', $d));
$key_pair = array_combine($keys, array_fill(0, count($keys), null));
$values = array_map(function($e) use ($key_pair) {
    return array_merge($key_pair, $e);
}, $d);

此方法本質上建立一個將所有可能的鍵對應到空值。然後將每個輸入數組與 $key_pair 數字組合並,實現與先前方法相同的結果。

以上是如何合併關聯數組、處理缺失鍵、填滿預設值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn