我有多個站點地圖,我想合併它們,但在合併它們之前,我需要爲所有數組中的所有值附加一個唯一變量。動態更新一個函數的PHP數組
// The global variable
define("BASE_URL", "http://domain.com");
$sitemap_full = [ "home" => BASE_URL ];
// One of the arrays
$sitemap_example = [
"foo" => "/bar",
"gnu" => "/lar"
];
由於我有多個這些數組,我想創建一個函數來追加鏈接。
function pushToSitemap($initial_sitemap, $sitemap) {
foreach ($initial_sitemap as $title => $url) {
return $sitemap[$title] = BASE_URL . $url;
}
}
,並在行動將是:
pushToSitemap($sitemap_example, $sitemap_full);
但是,這是行不通的,因爲如果我print_r($sitemap_full);
它會顯示Array("home", "http://domain.com");
。
真正讓我感到困擾的是,如果在函數中我回應它們,它們將被回顯。
我在做什麼錯?
編輯
應該顯示
Array(
"home" => "http://domain.com"m
"foo" => "http://domain.com/bar",
"gnu" => "http://domain.com/lar
);
你foreach'的'非常第一次迭代中返回在'pushToSitemap()'函數,所以它永遠不會繼續迭代;只有在'foreach'循環終止後纔會返回 –
那麼^^^^然後也許你應該向我們展示你想要數組看起來像什麼,因爲它對我來說不完全明顯 – RiggsFolly
'var_dump(array_merge( $ sitemap_full,array_map(function($ value){return BASE_URL。$ value;},$ sitemap_example)));' –