Php 如何基于特定索引映射两个数组?
我想将$array2值映射到$array1索引,这些索引具有值3和5,我想得到如下数组:Php 如何基于特定索引映射两个数组?,php,Php,我想将$array2值映射到$array1索引,这些索引具有值3和5,我想得到如下数组: Array1 ( [0] => [1] => [2] => 3 [3] => [4] => 5 [5] => [6] => ) Array2 ( [0] => URD [1] => ISL ) 我尝试了以下方法: Array ( [0] => [1] => [2] => URD [3] => [4] => ISL [5]
Array1 ( [0] => [1] => [2] => 3 [3] => [4] => 5 [5] => [6] => )
Array2 ( [0] => URD [1] => ISL )
我尝试了以下方法:
Array ( [0] => [1] => [2] => URD [3] => [4] => ISL [5] => [6] => )
Array ( [0] => [1] => [2] => URD [3] => [4] => ISL [5] => [6] => )
但实际结果是:
$newArray = array_values(array_filter(array_merge($array1,$array2)));
预期结果应该是:
Array([0] => 3[1] => 5[2] => URD[3] => ISL)
代码
请尝试以下操作:
Array ( [0] => [1] => [2] => URD [3] => [4] => ISL [5] => [6] => )
Array ( [0] => [1] => [2] => URD [3] => [4] => ISL [5] => [6] => )
警告
该方法假定数组1和数组2中都有值
一旦数组2中的值被拆分并且数组2为空,具有设置值的数组1项将不再受影响
该方法不关心数组1中设置的值是什么,只关心有一个值
进一步阅读
代码笔
根据OPS要求,此解决方案有效且易于理解
array(7) {
[0]=>
string(0) ""
[1]=>
string(0) ""
[2]=>
string(3) "URD"
[3]=>
string(0) ""
[4]=>
string(3) "ISL"
[5]=>
string(0) ""
[6]=>
string(0) ""
}
如果你想让它按顺序排列,比如3应该总是排在第一位,然后是排序数组1,然后使用我的代码。。。
如果需要,3应替换为URD,5应替换为ISL
然后,如果密码会有所不同,那就换一种方式吧。。。未经测试,但应该有效
$array1 = ["URD", "" ,"ISL","","",""];
欢迎来到StackOverflow!请阅读和阅读。显示var_导出$array1;var_出口$array2;我发现这个问题不清楚,因为没有一个清楚的解释为什么3和5的元素应该被另一个数组中的值替换。是的,我们可以假设您希望用另一个数组中的值替换非空值,但第二个数组和第一个数组值之间似乎没有明确的关系。
<?php
$a = array ( 0 => '', 1 => '', 2 => 3, 3 => '', 4 => 5, 5 => '', 6 => '' );
$b = array ( 0 => 'URD', 1 => 'ISL' );
$c = array_replace ( $a, array_combine ( array_keys ( array_filter ( $a ) ), $b ) );
print_r ( $c );
?>