我有像下面與給定的各個鍵代替數組鍵
$old = array(
'a' => 'blah',
'b' => 'key',
'c' => 'amazing',
'd' => array(
0 => 'want to replace',
1 => 'yes I want to'
)
);
我有具有鍵具有鍵信息來替換另一個陣列的陣列。
$keyReplaceInfoz = array('a' => 'newA', 'b' => 'newB', 'c' => 'newC', 'd' => 'newD');
我需要與各自的值,以取代在陣列$keyReplaceInfo
陣列$old
的所有密鑰。
輸出應該是這樣的
$old = array(
'newA' => 'blah',
'newB' => 'key',
'newC' => 'amazing',
'newD' => array(
0 => 'want to replace',
1 => 'yes I want to'
)
);
我不得不如下做手工。我期待更好的選擇。任何人都可以提出更好的方法來實現這一點
$new = array();
foreach ($old as $key => $value)
{
$new[$keyReplaceInfoz[$key]] = $value;
}
我知道這可以更簡單。
'array_combine'只有在鍵和值的順序正確時纔有效,並且每個鍵都有替換。 (我自己將此視爲一種解決方案)。 – Leigh 2012-07-30 14:10:53
其實上述唯一的問題是,如果沒有替換每個密鑰,它將無法正常工作。排序不是問題,因爲array_merge($ old,$ keyReplaceInfoz)。 – Summoner 2012-07-30 14:17:57
有幾個問題,都涉及元素的數量。如果替換數組包含不在舊數組中的鍵,則會有PHP警告(並且不會被替換)。如果替換數組缺少舊數組中的一個鍵,舊數組中的鍵將被替換爲它自己的_value_ – Leigh 2012-07-30 14:22:05