Hàm array_replace_recursive() trong PHP - PHP Function
Code $array = array( 'spain' => array( "Madrid") , 'England' => array( "Liverpool", "London" ) ); $replacements = array( 'spain' => array('Barcelona'), 'England' => array('Manchester') ); $result = array_replace_recursive($array, ...
Hàm array_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àm array_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
Cú pháp: array_replace_recursive($array1, $array2 [, $array3...]);
Trong đó :
$array1là 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$array1và thay thế.
Kết quả trả về là một mảng mới với các phần tử đã được thay thế.
Ví dụ
$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>"; Array
(
[spain] => Array
(
[0] => Barcelona
)
[England] => Array
(
[0] => Manchester
[1] => London
)
)
Array
(
[spain] => Array
(
[0] => Barcelona
)
[England] => Array
(
[0] => Manchester
)
)Ta có thể thấy, nếu dùng hàm array_replace_recursive() nó sẽ chỉ tìm đến khóa của mảng $array và $replacements rồi thay thế chứ không quan tâm đến giá trị của phần tử đó có là mảng hay không.
Tham khảo:php.net
Nguồn: Zaidap.com.net