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 đó :
Bài viết này được đăng tại [kiso.vn]
$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ế.
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
Bài viết liên quan
[CSF-2] Một số thiết lập CSF, LFD
Hôm nay mình sẽ thực hiện một số thiết lập trên CSF Mở file config để sửa đổi một số tính năng dưới /etc/csf/csf.conf Nội dung chínhCú phápVí dụ1. Bảo vệ khỏi tấn công DoS...
[CSF-1] Tăng bảo mật Server với ConfigServer Firewall (CSF)
Nội dung chínhCú phápVí dụ1. Khái niệm CSF: CSF (ConfigServer & Firewall) là một bộ ứng dụng hoạt động trên Linux như một firewall được phát hành miễn phí để tăng tính bảo mật cho...
Sử dụng SSH Key với Gitlab và Github
Bài viết này mình sẽ hướng dẫn các bạn tạo ssh key cho Gitlab và Github SSH là gì? Secure Socket Shell là một giao thức mạng dùng để thiết lập kết nối mạng một...
Directory traversal vulnerabilities (phần 4)
Nội dung chínhCú phápVí dụV. Phân tích và khai thác các lỗ hổng Directory traversal (tiếp) 5. Bypass lỗ hổng khi trang web sử dụng đường dẫn đầy đủ Xét đoạn code php sau: <?php...
Directory traversal vulnerabilities (phần 3)
Nội dung chínhCú phápVí dụV. Phân tích và khai thác các lỗ hổng Directory traversal 1. Lỗ hổng xảy ra khi sử dụng các hàm đọc file và tin tưởng đầu vào người dùng Xét...
Directory traversal vulnerabilities (phần 2)
Nội dung chínhCú phápVí dụIII. Vì sao lỗ hổng Directory traversal xuất hiện? Với mỗi ngôn ngữ lập trình khác nhau, điểm xuất hiện các lỗ hổng Directory traversal cũng khác nhau. Lỗ hổng thường...