將關聯數組與不同的鍵集組合起來創建統一的數組可能具有挑戰性。這個問題探索了一種實現此目的的方法,所需的輸出是一個數組,其中鍵被合併,缺失的列用預設值填充。
為了實現這一點,建議結合使用 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 數字組合並,實現與先前方法相同的結果。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3