將關聯數組與不同的鍵集組合以創建統一的數組可能具有挑戰性。這個問題探索了一種實現此目的的方法,所需的輸出是一個數組,其中鍵被合併,缺失的列用預設值填充。
為了實現這一點,建議結合使用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中文網其他相關文章!