Tôi có một mảng như dưới đâythay thế phím mảng với các phím tương ứng cho
$old = array(
'a' => 'blah',
'b' => 'key',
'c' => 'amazing',
'd' => array(
0 => 'want to replace',
1 => 'yes I want to'
)
);
Tôi có một mảng có phím để thay thế những thông tin quan trọng.
$keyReplaceInfoz = array('a' => 'newA', 'b' => 'newB', 'c' => 'newC', 'd' => 'newD');
tôi cần phải thay thế tất cả các phím của mảng $old
với giá trị tương ứng trong mảng $keyReplaceInfo
.
Output nên như thế này
$old = array(
'newA' => 'blah',
'newB' => 'key',
'newC' => 'amazing',
'newD' => array(
0 => 'want to replace',
1 => 'yes I want to'
)
);
tôi phải làm nó bằng tay như dưới đây. Tôi đang mong đợi lựa chọn tốt hơn. bất cứ ai có thể đề nghị cách tốt hơn để thực hiện điều này?
$new = array();
foreach ($old as $key => $value)
{
$new[$keyReplaceInfoz[$key]] = $value;
}
Tôi biết điều này có thể đơn giản hơn nhiều.
'array_combine' sẽ chỉ hoạt động nếu các khóa và giá trị theo đúng thứ tự và có thay thế cho mỗi khóa. (Tôi tự coi đây là giải pháp). – Leigh
Trên thực tế vấn đề duy nhất với ở trên là nó sẽ không hoạt động nếu không có sự thay thế cho mỗi khóa. Đặt hàng không phải là một vấn đề vì array_merge ($ old, $ keyReplaceInfoz). – Summoner
Có một vài vấn đề, cả hai đều liên quan đến số yếu tố. Nếu mảng thay thế chứa một khóa không nằm trong mảng cũ, sẽ có một cảnh báo PHP (và không có gì sẽ được thay thế). Nếu mảng thay thế thiếu khóa từ mảng cũ, khóa trong mảng cũ sẽ được thay thế bằng _value_ riêng của nó – Leigh