如何在php中从2个数组中选择不同的键和值并对其进行更改?

如何在php中从2个数组中选择不同的键和值并对其进行更改?,php,arrays,Php,Arrays,我有两个数组 上一篇: Array( [name] => [asdfg] [city] => [anand] ) Array( [name] => [ud] [state] => [anand] ) 当前: Array( [name] => [asdfg] [city] => [anand] ) Array( [name] =&

我有两个数组

上一篇:

Array(
        [name] => [asdfg]
        [city] => [anand]
)    
Array(
        [name] => [ud]
        [state] => [anand]
)
当前:

Array(
        [name] => [asdfg]
        [city] => [anand]
)    
Array(
        [name] => [ud]
        [state] => [anand]
)
现在,我必须比较这两个数组,并希望更改更改的当前数组键或值,并将元素包装为

Array(
        [name] => [<span class='bold_view'> ud </span>]
        [<span class='bold_view'> state </span>] => [anand]
)
数组(
[名称]=>[ud]
[州]=>[州]
)
$current['name']=''.$current['name'].'';
$current['state']=$current['state'];

我不得不说,它没有多大意义,但它就在这里。

复制此代码并执行:然后查看视图源代码(Ctrl+u)

$arr\u pre=数组(
“名称”=>“asdfg”,
“城市”=>“阿南德”,
“地址”=>“anand”,
);
$arr\u当前=阵列(
“名称”=>“ud”,
“state”=>“anand”,
“地址”=>“阿难”
);
$result=array\u diff\u assoc($arr\u current,$arr\u pre);
$count\u curr=数组\u count\u值($arr\u current);
$count\u old=数组\u count\u值($arr\u pre);
foreach($结果为$key=>$value){
如果(!array_key_存在($key,$arr_pre))
{
$key_new=“”.$key。”;
如果(!in_数组($value,$arr_pre))
{
$val=”“.$value。”;
}
否则如果((isset($count\u curr[$value])!=isset($count\u old[$value]))
{
$val=”“.$value。”;
}
其他的
{
$val=$value;
}
未设置($arr_current_info[$key]);
}
否则{
$key_new=$key;
如果(!in_数组($value,$arr_pre))
{
$val=”“.$value。”;
}
否则如果((isset($count\u curr[$value])!=isset($count\u old[$value]))
{
$val=”“.$value。”;
}
其他的
{
$val=$value;
}
}
$arr\u当前\u信息[$key\u new]=$val;
}
回声“;
打印($arr\u当前信息);

我已经这样做了,我得到了完美的答案

我必须显示日志,我想以粗体显示更改的值或键。我尝试了
array\u diff\u assoc
array\u udiff\u uassoc
。但是我无法解决这个问题。如果键和值都改变了怎么办…我们无法比较嗯,整个HTML是你代码的一部分吗,还是试图将你的降价加粗?@PrasanthBendra我必须创建一个新的数组,如果它发现键或值与以前的相同,那么它会按原样放置键或值,否则会执行一些功能,用span包装元素请检查答案,如果你有任何要求,请告诉我:D
$arr_pre = array(
                  "name"=>"asdfg",
                  "city"=>"anand",
                  "address" => "anand",
);

$arr_current= array(
                    "name"=>"ud",
                    "state"=>"anand",
                    "address" => "ananda"
);

$result = array_diff_assoc($arr_current,$arr_pre);
    $count_curr = array_count_values($arr_current);
    $count_old  = array_count_values($arr_pre);

    foreach ($result as $key => $value){



        if(!array_key_exists($key,$arr_pre ))
        {
            $key_new = "<b>".$key."</b>";

            if(!in_array($value,$arr_pre))
            {
                $val = "<b>".$value."</b>";
            }

            else if((isset($count_curr[$value]) != isset($count_old[$value])))
            {
                $val = "<b>".$value."</b>";
            }
            else 
            {
                $val = $value;
            }

            unset($arr_current_info[$key]);
        }
        else {
            $key_new = $key;

            if(!in_array($value,$arr_pre))
            {
                $val = "<b>".$value."</b>";
            }

            else if((isset($count_curr[$value]) != isset($count_old[$value])))
            {
                $val = "<b>".$value."</b>";
            }
            else 
            {
                $val = $value;
            }
        }

        $arr_current_info[$key_new]=$val;

    }


    echo "<pre>";
    print_r($arr_current_info);