Hàm array_replace_recursive() trong PHP
Hàmarray_replace_recursive()
sẽ thay thế các phần tử của mảng đầu tiên bằng các phần tử của mảng thứ hai nếu chúng có cùng khóa. Nếu khóa của phần tử chỉ tồn tại ở mảng thứ nhất, phần tử đó sẽ được giữ nguyên. Nếu khóa chỉ tồn tại ở mảng thứ hai, phân tử đó sẽ được thêm vào cuối mảng một.Nếu có nhiều hơn 2 mảng truyền vào, các mảng truyền vào sẽ được ưu tiên thay thế đè lên mảng trước đó nếu có khóa trùng nhau.
Khá giống với hàmarray_replace()
phải không. Tuy nhiên nếu các phần tử của các mảng truyền vào đều là các mảng thì sao, cùng tìm hiểu ví dụ nhé.
Cú pháp:
array_replace_recursive($array1, $array2 [, $array3...]);
Trong đó:
$array1
là mảng gốc để thay thế.$array2, $array3 ...
là các mảng truyền vào, để so sánh khóa với mảng $array1 và thay thế.
Ví dụ:
PHP:
$array = array(
'spain' => array( "Madrid") ,
'England' => array(
"Liverpool",
"London"
)
);
$replacements = array(
'spain' => array('Barcelona'),
'England' => array('Manchester')
);
$result = array_replace_recursive($array, $replacements);
echo "<pre>";
print_r($result);
echo "</pre>";
$result = array_replace($array, $replacements);
echo "<pre>";
print_r($result);
echo "</pre>";
Kết quả
Mã:
Array
(
[spain] => Array
(
[0] => Barcelona
)
[England] => Array
(
[0] => Manchester
[1] => London
)
)
Array
(
[spain] => Array
(
[0] => Barcelona
)
[England] => Array
(
[0] => Manchester
)
)