如何在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);