我正在尋找一個簡單的解決方案來創建一個小的功能合併兩個數組與值的concat Concat的值(我使用它來創建HTML標記屬性):如何合併兩個數組與PHP
$default["class"] = "red";
$new["class"] = "green";
$new["style"] = "display:block"
其結果是:
$res["class"] = "red green";
$res["style"] = "display: block";
和一個選擇: 如果$new
不是數組,只是用$default["class"]
的concat(如果這存在),而另一側:如果$default
是一個簡單的字符串,轉換爲數組:$default["class"] = $default
;
我創建了一個功能,但想用一種更簡單,更短的方式爲:
function attrMerge($default, $new=""){
$res = array();
if(!is_array($default)) {
$res["class"] = $default;
}
else {
$res = $default;
}
if($new !== ""){
if(!is_array($new)) {
if(isset($res["class"])){
$res["class"].= " ".$new;
}
}
else {
foreach($new as $key=>$value) {
if(isset($res[$key])) {
$res[$key].= " ".$value;
}
else {
$res[$key] = $value;
}
}
}
}
return $res;
}
$a = attrMerge("red", array("class"=>"green", "style"=>"display: block;"));
謝謝。你的函數可以很好的使用class屬性,但是清除'$ default [「style」]'並且只保留'$ new [「style」]'值。 – rastafest
我加了修正。我不知道你可以像默認值一樣將類型傳遞給類 – Nick
對不起,我在最後感到困惑:)這個函數對我很好。謝謝!:) – rastafest