为了账号安全,请及时绑定邮箱和手机立即绑定

翻转键并从另一个数组构造值

翻转键并从另一个数组构造值

PHP
冉冉说 2021-10-22 15:31:39
我有以下两个数组:$a1 = [56,60];$a2 = [60 => 'aa', 61 => 'bb', 62 => 'cc', 63 => 'dd'];我正在尝试申请array_map构建一个如下所示的新数组:Array(    [56] =>            [60] => aa)基本上我需要的是遍历第一个数组,如果我在第二个数组中找到它,我将获取其对应的值,否则将其设置为空字符串。这array_map是最好的方法吗?
查看完整描述

1 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

一个简单的循环对我来说似乎最简单,使用 array_key_exists()


$a1 = [56,60];

$a2 = [60 => 'aa',61 => 'bb',62 => 'cc',63 => 'dd'];


$new = [];


foreach ( $a1 as $key )  {

    if ( array_key_exists($key, $a2) ) {

        $new[$key] = $a2[$key];

    }

}


print_r($new);

结果


Array

(

    [60] => aa

)

或者如果你真的想要一个空白的出现,这会起作用


$a1 = [56,60];

$a2 = [60 => 'aa',61 => 'bb',62 => 'cc',63 => 'dd'];


$new = [];


foreach ( $a1 as $key )  {

    $new[$key] = array_key_exists($key, $a2) ? $a2[$key] : null;

}


print_r($new);

结果


Array

(

    [56] => 

    [60] => aa

)

甚至


$a1 = [56,60];

$a2 = [60 => 'aa',61 => 'bb',62 => 'cc',63 => 'dd'];


$new = [];


foreach ( $a1 as $key )  {

    $new[$key] = $a2[$key] ?? null;

}


print_r($new);

结果


Array

(

    [56] => 

    [60] => aa

)


查看完整回答
反对 回复 2021-10-22
  • 1 回答
  • 0 关注
  • 124 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信