2018-01-25 22:06:18 1808次浏览 2条回答 0 悬赏 10 金钱
$a = Array("a", "b","c","a","c");
$b = Array("1","2","3","2","3");

数组$a 和数组$b合并

array(
    a=>1
    b=>2
    c=>3
    a=>2
    c=>3
)

因为键名不能一样咯,所以我要让一样的键名的键值累加,
理想是这样的:

array{
    a=>3
    b=>2
    c=>6
}

最佳答案

  • yyf 发布于 2018-01-26 17:30 举报

    $array1=[

    "a",
    "b",
    "c",
    "a",
    "b",
    

    ];
    $array2=[

    "1",
    "2",
    "3",
    "2",
    "3",
    

    ];

    foreach ($array1 as $key1=>$value1){

    $new_array[$value1]+=$array2[$key1]??0;
    

    }

    5 条回复
    回复于 2018-01-27 10:52 回复

    是$array2[$key1]?:0;吗,还有就是会报出a,b,c都是未定义。

    回复于 2018-01-27 10:54 回复

    我用error_reporting(E_ALL ^ E_NOTICE); 关闭错误的警告也能出来

    回复于 2018-01-30 15:17 回复

    不是三目运算符,是"??"(php 7.0 新增的语法糖 http://php.net/manual/zh/migration70.new-features.php),例如:"$a=$array2['a']??0;",意思是:如果isset($array2['a'])就取$array2['a']的值赋给$a,否则将0赋给$a,

    回复于 2018-01-30 16:58 回复

    原来是这样啊,我还以为你打错了。谢谢你。

    回复于 2018-01-30 18:50 回复

    不客气

    觉得很赞
您需要登录后才可以回答。登录 | 立即注册
图灵y
主管

图灵y 江西南昌

注册时间:2017-12-18
最后登录:2018-02-10
在线时长:11小时4分
  • 粉丝3
  • 金钱855
  • 威望0
  • 积分965

热门问题