Php 合并一个数组键和另一个数组值

Php 合并一个数组键和另一个数组值,php,arrays,Php,Arrays,我有两个数组,如下所示 数组1(这是默认数组) 数组2(这是动态数组) 现在我所需要的是我想要合并数组1的值和数组2的键 仅获取在Array2中具有值的元素 删除所有其他键和值 上述示例的结果如下所示 Array ( [0] => pname [1] => minmrpprice //[2] => maxmrpprice(THIS DON'T SHOW BECAUSE VALUE IS EMPTY) [3] => unittype

我有两个数组,如下所示

数组1(这是默认数组)

数组2(这是动态数组)

现在我所需要的是我想要合并数组1的值和数组2的键

  • 仅获取在Array2中具有值的元素
  • 删除所有其他键和值
  • 上述示例的结果如下所示

    Array
    (
        [0] => pname
        [1] => minmrpprice
        //[2] => maxmrpprice(THIS DON'T SHOW BECAUSE VALUE IS EMPTY)
        [3] => unittype
        [4] => minorder
        [5] => pdetails
        [6] => status
        [7] => product_group
        [8] => specification
    )
    
    我还尝试了merge_数组,但它返回的结果如下

    Array
    (
        [0] => pname
        [1] => minmrpprice
        [2] => maxmrpprice
        [3] => unittype
        [4] => minorder
        [5] => pdetails
        [6] => status
        [7] => product_group
        [8] => specification
        [pname] => Designer Dress By Textilemart
        [h1] => 1
        [userid] => textilemart
        [minmrpprice] => 1212
        [maxmrpprice] => 
        [unittype] => Piece
        [minorder] => 12
        [pdetails] => adsfadf
        [_wysihtml5_mode] => 1
        [status] => 1
        [product_group] => 2
        [addGroupInput] => 
        [categories] => 2
        [9] => 299
        [10] => 84
        [11] => 71
        [12] => 45
        [specification] => 84
        [13] => 
        [submit] => Update Product
    )
    
    我不需要像这样

    试试这个

    Array
    (
        [0] => pname
        [1] => minmrpprice
        [2] => maxmrpprice
        [3] => unittype
        [4] => minorder
        [5] => pdetails
        [6] => status
        [7] => product_group
        [8] => specification
        [pname] => Designer Dress By Textilemart
        [h1] => 1
        [userid] => textilemart
        [minmrpprice] => 1212
        [maxmrpprice] => 
        [unittype] => Piece
        [minorder] => 12
        [pdetails] => adsfadf
        [_wysihtml5_mode] => 1
        [status] => 1
        [product_group] => 2
        [addGroupInput] => 
        [categories] => 2
        [9] => 299
        [10] => 84
        [11] => 71
        [12] => 45
        [specification] => 84
        [13] => 
        [submit] => Update Product
    )
    
    循环遍历数组1,并在数组2中使用check if值

    foreach($arr1 as $a){
    
    if(!empty($arr2[$a])){
    
     $new[] = $a;
      }
    }
    
    print_r($new);
    

    有一个函数可以完全满足您的需要,它被称为
    array\u intersect\u key
    ,它从一个数组中删除不作为另一个数组中的键出现的所有值

    您刚刚遇到的问题是,您的第一个数组没有将想要的字段作为键,而是作为值。幸运的是,有一个函数可以简单地交换这些数据,它叫做
    array\u flip
    <代码>数组翻转将所有值转换为键,并将其键转换为值。这只适用于
    string
    /
    int

    要使两个数组相交,PHP中的代码如下:

    $wantedKeys = array_flip($array_one);
    $result = array_intersect_key($array_two, $wantedKeys);
    

    结果将是
    $array\u two
    的一部分,其键也出现在
    $wantedKeys
    数组中。

    没有任何错误。请稍等片刻,您将得到一个解决方案:)您现在得到了什么?你能给我看一下预期的手术吗
    $wantedKeys = array_flip($array_one);
    $result = array_intersect_key($array_two, $wantedKeys);