首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Php具有相同键的两个不同数组

Php具有相同键的两个不同数组
EN

Stack Overflow用户
提问于 2012-10-03 07:34:11
回答 6查看 83关注 0票数 0

我对php还不熟悉,还在学习语言,

假设我有两个数组

,例如

代码语言:javascript
复制
Array
(
    [house_id] => 6
    [name] => Lake Villa
    [floor] => 5
    [unit] => 25
)

Array
(
    [house_id] => 6
    [name] => Lake Villa
    [floor] => 5
    [unit] => 25
    [parking_id] => 9
    [resident_count] => 4
)

如何将第一个数组的键放到第二个数组上,我的意思是,我只需要第二个数组中的house_id, name, floor, unit并丢弃其余的信息。

但是,它们的键并不相同,而且是动态的,这意味着第一个数组键--无论返回什么--在第二个数组中也存在,但是包含更多的信息。上面的信息只是一个例子,键可能会有所不同,但是第一个数组上的任何键也包含在第二个数组上。

我试过了,但没用:

代码语言:javascript
复制
foreach($arr1 as $k=>$v) {
    foreach($arr2 as $j=>$w) {
        if(isset($arr2[$k]))
            $arr[$k] = $w;
    }
}
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-10-03 07:36:30

您可以使用array_intersect_key合并数组。

代码语言:javascript
复制
$newArray = array_intersect_key($array2, $array1);
票数 2
EN

Stack Overflow用户

发布于 2012-10-03 07:38:14

使用键()

array_intersect_key()返回一个数组,该数组包含array1的所有条目,其中的键存在于所有参数中。

代码

代码语言:javascript
复制
var_dump(array_intersect_key($array1, $array2));
票数 2
EN

Stack Overflow用户

发布于 2012-10-03 07:36:48

代码语言:javascript
复制
foreach($arr2 as $key=>$val){
   if(!array_key_exists($key,$arr1))        
   unset($arr2[$key]);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12703862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档