数组合并有没有很快捷的方法?<?php
$a=array(
"seletor"=>"hello",
"content"=>array(
"color" =>"#333333",
"font-size" =>"13px",
"border" =>"1px solid #222222"
)
);
$b=array(
"seletor"=>"hello",
"content"=>array(
"background-image" =>"url(http://hello.com/hello.png)",
"font-size" =>"16px",
)
); //$a是新的css信息,$b是原有的css信息,怎么根据$a更新$b得到$c?
//即如果$b中有$a的条目,则更新值;如果没有此条目,则添加上
$c=array(
"seletor"=>"hello",
"content"=>array(
"background-image" =>"url(http://hello.com/hello.png)",
"font-size" =>"13px",
"color" =>"#333333",
"border" =>"1px solid #222222"
)
);
?>
$a=array(
"seletor"=>"hello",
"content"=>array(
"color" =>"#333333",
"font-size" =>"13px",
"border" =>"1px solid #222222"
)
);
$b=array(
"seletor"=>"hello",
"content"=>array(
"background-image" =>"url(http://hello.com/hello.png)",
"font-size" =>"16px",
)
); //$a是新的css信息,$b是原有的css信息,怎么根据$a更新$b得到$c?
//即如果$b中有$a的条目,则更新值;如果没有此条目,则添加上
$c=array(
"seletor"=>"hello",
"content"=>array(
"background-image" =>"url(http://hello.com/hello.png)",
"font-size" =>"13px",
"color" =>"#333333",
"border" =>"1px solid #222222"
)
);
?>
<?php
$a = array(
"seletor"=>"hello",
"content"=>array(
"color" =>"#333333",
"font-size" =>"13px",
"border" =>"1px solid #222222"
)
);
$b = array(
"seletor"=>"hello",
"content"=>array(
"background-image" => "url(http://hello.com/hello.png)",
"font-size" => "16px",
)
);
//$c = array_merge($a['content'],$b['content']);
//$result['content'] = $c;
$result = array();
foreach($a as $k=>$v){
if(is_array($a[$k]) && isset($b[$k])){
$c = array_merge($a[$k],$b[$k]);
$result[$k] = $c;
}
elseif(is_array($a[$k]) && !isset($b[$k])){
$result[$k] = $a[$k];
}
else $result[$k] = $b[$k];
}
foreach($b as $k=>$v){
if(!isset($result[$k])){
$result[$k] = $v;
}
}
echo "<pre>";
print_r($result);
echo "</pre>";如果$a $b的数组只需要合并content项的话,更简单:<?php
$a = array(
"seletor"=>"hello",
"content"=>array(
"color" =>"#333333",
"font-size" =>"13px",
"border" =>"1px solid #222222"
)
);
$b = array(
"seletor"=>"hello",
"content"=>array(
"background-image" => "url(http://hello.com/hello.png)",
"font-size" => "16px",
)
);
$c = array_merge($a['content'],$b['content']);
$a['content'] = $c;
print_r($a);