Php 合并一个数组键和另一个数组值
我有两个数组,如下所示 数组1(这是默认数组) 数组2(这是动态数组) 现在我所需要的是我想要合并数组1的值和数组2的键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
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);