数组合并有没有很快捷的方法?<?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"
)
);
?>

解决方案 »

  1.   

    先来个:
    <?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);