php比较2个关联数组并仅在同一个键上组合
我有一个特殊条件,需要仅在同一个键上组合两个关联数组php比较2个关联数组并仅在同一个键上组合,php,arrays,Php,Arrays,我有一个特殊条件,需要仅在同一个键上组合两个关联数组 $array_1['key1']=""; $array_1['key2']=""; $array_1['key3']=""; $array_1['key4']=""; $array_1['key5']=""; $array_1['key6']=""; $array_1['key7']=""; $array_2['key1']="value1"; $array_2['key3']="value2"; $array_2['key4']="val
$array_1['key1']="";
$array_1['key2']="";
$array_1['key3']="";
$array_1['key4']="";
$array_1['key5']="";
$array_1['key6']="";
$array_1['key7']="";
$array_2['key1']="value1";
$array_2['key3']="value2";
$array_2['key4']="value3";
$array_2['key8']="value4";
$results=array_merge($array_1,$array_2);
foreach ($results as $key=>$value){
echo ''.$key.'-<input type="text" value="'.$value.'"><br>';
}
$array_1['key1']=”;
$array_1['key2']=“”;
$array_1['key3']=“”;
$array_1['key4']=“”;
$array_1['key5']=“”;
$array_1['key6']=“”;
$array_1['key7']=“”;
$array_2['key1']=“value1”;
$array_2['key3']=“value2”;
$array_2['key4']=“value3”;
$array_2['key8']=“value4”;
$results=array\u merge($array\u 1,$array\u 2);
foreach($结果为$key=>$value){
回显'.$key.'-
';
}
如果我使用array\u merge,所有键都将组合在一起,就像屏幕截图的右侧一样;那不是我想要的。我只想要屏幕截图的左侧
更简单地说,我想显示$array\u 1键,并仅使用相同的键将$array\u 2加入$array\u 1。
有人能帮忙吗?你可以试试这样的方法:
$keys = array_keys($array2);
foreach ($array1 as $key => $value) {
if (in_array($key, $keys)) {
echo ''.$key.'-<input type="text" value="'.$value.'"><br>';
}
}
$keys=array\u keys($array2);
foreach($array1作为$key=>$value){
if(在_数组中($key,$key)){
回显'.$key.'-
';
}
}
您可以尝试以下方法:
$keys = array_keys($array2);
foreach ($array1 as $key => $value) {
if (in_array($key, $keys)) {
echo ''.$key.'-<input type="text" value="'.$value.'"><br>';
}
}
$keys=array\u keys($array2);
foreach($array1作为$key=>$value){
if(在_数组中($key,$key)){
回显'.$key.'-
';
}
}
尝试使用$array\u 1的键显示所需结果
$array_1['key1']="";
$array_1['key2']="";
$array_1['key3']="";
$array_1['key4']="";
$array_1['key5']="";
$array_1['key6']="";
$array_1['key7']="";
$array_2['key1']="value1";
$array_2['key3']="value2";
$array_2['key4']="value3";
$array_2['key8']="value4";
$results=array_merge($array_1,$array_2);
foreach ($array_1 as $key => $value){
echo ''.$key.'-<input type="text" value="'.$results[$key].'"><br>';
}
$array_1['key1']=”;
$array_1['key2']=“”;
$array_1['key3']=“”;
$array_1['key4']=“”;
$array_1['key5']=“”;
$array_1['key6']=“”;
$array_1['key7']=“”;
$array_2['key1']=“value1”;
$array_2['key3']=“value2”;
$array_2['key4']=“value3”;
$array_2['key8']=“value4”;
$results=array\u merge($array\u 1,$array\u 2);
foreach($key=>$value的数组_1){
回显'.$key.'-
';
}
尝试使用$array\u 1的键显示所需结果
$array_1['key1']="";
$array_1['key2']="";
$array_1['key3']="";
$array_1['key4']="";
$array_1['key5']="";
$array_1['key6']="";
$array_1['key7']="";
$array_2['key1']="value1";
$array_2['key3']="value2";
$array_2['key4']="value3";
$array_2['key8']="value4";
$results=array_merge($array_1,$array_2);
foreach ($array_1 as $key => $value){
echo ''.$key.'-<input type="text" value="'.$results[$key].'"><br>';
}
$array_1['key1']=”;
$array_1['key2']=“”;
$array_1['key3']=“”;
$array_1['key4']=“”;
$array_1['key5']=“”;
$array_1['key6']=“”;
$array_1['key7']=“”;
$array_2['key1']=“value1”;
$array_2['key3']=“value2”;
$array_2['key4']=“value3”;
$array_2['key8']=“value4”;
$results=array\u merge($array\u 1,$array\u 2);
foreach($key=>$value的数组_1){
回显'.$key.'-
';
}
像这样
$array_1['key1']="";
$array_1['key2']="";
$array_1['key3']="";
$array_1['key4']="";
$array_1['key5']="";
$array_1['key6']="";
$array_1['key7']="";
$array_2['key1']="value1";
$array_2['key3']="value2";
$array_2['key4']="value3";
$array_2['key8']="value4";
foreach ($array_1 as $k => $v) {
if(isset($array_2[$k])){
$array_1[$k] = empty($array_1[$k])?$array_2[$k]:$array_1[$k];
}
}
echo "<pre>";
print_r($array_1);
像这样
$array_1['key1']="";
$array_1['key2']="";
$array_1['key3']="";
$array_1['key4']="";
$array_1['key5']="";
$array_1['key6']="";
$array_1['key7']="";
$array_2['key1']="value1";
$array_2['key3']="value2";
$array_2['key4']="value3";
$array_2['key8']="value4";
foreach ($array_1 as $k => $v) {
if(isset($array_2[$k])){
$array_1[$k] = empty($array_1[$k])?$array_2[$k]:$array_1[$k];
}
}
echo "<pre>";
print_r($array_1);
在这里,您必须在数组_1中循环,然后使用array_key_exists()函数检查此键轴是否位于区域y_2中如果是,请设置$array_1[key]=$array_2[key]的值
$array_1['key1']="";
$array_1['key2']="";
$array_1['key3']="";
$array_1['key4']="";
$array_1['key5']="";
$array_1['key6']="";
$array_1['key7']="";
$array_2['key1']="value1";
$array_2['key3']="value2";
$array_2['key4']="value3";
$array_2['key8']="value4";
$updatedArray = [];
$finalArray = array_intersect_key($array_1,$array_2);
foreach ($finalArray as $key=>$value){
$updatedArray[$key] = $array_2[$key];
}
print_r($updatedArray);
在这里,您必须在数组_1中循环,然后使用array_key_exists()函数检查此键轴是否位于区域y_2中如果是,请设置$array_1[key]=$array_2[key]的值
$array_1['key1']="";
$array_1['key2']="";
$array_1['key3']="";
$array_1['key4']="";
$array_1['key5']="";
$array_1['key6']="";
$array_1['key7']="";
$array_2['key1']="value1";
$array_2['key3']="value2";
$array_2['key4']="value3";
$array_2['key8']="value4";
$updatedArray = [];
$finalArray = array_intersect_key($array_1,$array_2);
foreach ($finalArray as $key=>$value){
$updatedArray[$key] = $array_2[$key];
}
print_r($updatedArray);
你可以试试这个解决方案
$results = array_merge($array_1, array_intersect_key($array_2, $array_1));
你可以试试这个解决方案
$results = array_merge($array_1, array_intersect_key($array_2, $array_1));
有很多方法可以达到你的目标。其中一个是用于仅为与
$array\u 1
相同的键保留$array\u 2
的值,并仅将此交集合并到$array\u 1
中
比如:
有很多方法可以达到你的目标。其中一个是用于仅为与
$array\u 1
相同的键保留$array\u 2
的值,并仅将此交集合并到$array\u 1
中
比如:
嗯,你看了array\u merge了吗?如果
$array\u 1
键包含值怎么办?例如,$array\u 1['key1']=“value”
和$array\u 2['key1']
包含值,预期结果是什么?@Mohammad在调用数组时取决于数组的顺序,要对每个数组进行优先级排序,在调用dmm时对最后一个数组进行优先级排序,你看了array\u merge了吗?如果$array\u 1
键包含值怎么办?例如,$array_1['key1']=“value”
和$array_2['key1']
包含值,预期结果是什么?@Mohammad在调用数组时取决于数组的顺序,要对每个数组进行优先级排序,在调用great answer时对最后一个数组进行优先级排序,无需循环整个数组。还应在此处添加:@giacomopattalis这不起作用检查此-@giacomopattalis此答案对您链接的问题有何帮助?这是一个具有不同设置的不同问题。@Mohammad key8在结果中缺失array@Bhaskar这就是问题所在,“为了更简单,我想显示$array_1键,并仅使用相同的键将$array_2连接到$array_1中。”回答很好,不需要循环整个数组。还应在此处添加:@giacomopattalis这不起作用检查此-@giacomopattalis此答案对您链接的问题有何帮助?这是一个具有不同设置的不同问题。@Mohammad key8在结果中缺失array@Bhaskar这就是问题所在,“为了更简单,我想显示$array_1键,并仅使用相同的键将$array_2连接到$array_1中。”