php數組對比unset問題
三叔
三叔 2017-06-29 10:08:35
0
8
990

根據數組二 含有的值 5 4 1 把上面的數組一不存在 key 不是 5 4 1的unset 求最簡單寫法。哈

// 数组一
array(6) {
  [1] => string(12) "伊凡木门"
  [2] => string(12) "梦天木门"
  [3] => string(15) "大自然地板"
  [4] => string(12) "尚品宅配"
  [5] => string(15) "德国都芳漆"
  [6] => string(12) "左右沙发"
}
数组二
array(3) {
  [0] => int(5)
  [1] => int(4)
  [2] => int(1)
}
三叔
三叔

全部回覆(8)
小葫芦

我最後用下面的方法解決。如果大神們有更好的寫法請不吝賜教

    function get_vip_brand_list($uid = UID)
    {
        // 第一个数组
        $brand_list = config('sales_brand');
        // 第二个数组,反转键和值
        $node       = array_flip(get_auth_node($uid,'sales.brand'));
        // 比较两个数组的键名,并返回交集
        $vip_node   = array_intersect_key($brand_list, $node);
        return $vip_node;
    }
Ty80

可以利用array_diff系列的函數來操作,具體業務具體使用array_diff_key或assoc自己決定就可以了。

世界只因有你

根據數組二 含有的值 5 4 1 把上面的數組一不存在 key 不是 5 4 1的unset 求最簡單寫法。哈
表示看不懂

<?php
$keys1 = array_keys($array1); // 获取数组1key列表
$diffKeys = array_diff($keys1,$array2);// 结算数组1和数组2 key差集
foreach($diffKeys as $key){
    unset($array1[$key]);
}
typecho

建立一個新的陣列用來存放你要保留的值。然後循環遍歷數組二,再用array_push函數把數組一中要保留的值push到新建的數組中。

某草草

先翻轉陣列2,再求交集,你的解法我看是正解

学习ing

可以了解下array_slice 這個函數

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板