亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果存在于其他數組中,則更新數組的值

如果存在于其他數組中,則更新數組的值

PHP
一只甜甜圈 2021-12-03 15:55:58
我有這個數組$a:[0] => Array    (        [param] => banana        [value] => yellow    )[1] => Array    (        [param] => lemon        [value] => 3    )[2] => Array    (        [param] => apple        [value] => 18    )...和數組$b:[0] => Array    (        [param] => banana        [value] => brown    )[1] => Array    (        [param] => orange        [value] => 3    )[2] => Array    (        [param] => lemon        [value] => 4    )[3] => Array    (        [param] => pear        [value] => green    )Array$c應該是 的副本$a,但是,如果$b包含存在于 中的某些參數,則$afrom 的值$a應更新為 from 的值$b。所以$c會變成:[0] => Array    (        [param] => banana        [value] => brown    )[1] => Array    (        [param] => lemon        [value] => 4    )[2] => Array    (        [param] => apple        [value] => 18    )有小費嗎?
查看完整描述

2 回答

?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

您可以將數組映射與多個數組一起使用,


$c = array_filter(array_map(function ($a1, $b1) {

    if ($a1['param'] == $b1['param']) {

        $a1['value'] = $b1['value'];

        return $a1;

    } else {

        return $a1;

    }


}, $a, $b));



編輯


$bData = array_column($b,'value','param'); // param as key and value as value

foreach($a as &$v){

    $v['value'] = ($bData[$v['param']] ?? $v['value']); // php 7+   

    //or $v['value'] = (!empty($bData[$v['param']]) ? $bData[$v['param']] :   $v['value']);    // php 5.6 or previous


}



輸出


Array

(

    [0] => Array

        (

            [param] => banana

            [value] => brown

        )


    [1] => Array

        (

            [param] => lemon

            [value] => 4

        )


    [2] => Array

        (

            [param] => apple

            [value] => 18

        )


)


查看完整回答
反對 回復 2021-12-03
?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊


    $a = ['banana' => 'yellow', 'apple' => 3, 'lemon' => 18];


    $b = ['banana' => 'brown', 'orange' => 3, 'lemon' => 4];


    $a_keys = array_keys($a);


    $c = $a;


    foreach ($a_keys as $key) {

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

            $c[$key] = $b[$key];

        }

    }


查看完整回答
反對 回復 2021-12-03
  • 2 回答
  • 0 關注
  • 197 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號