如何修复数组映射在循环中重复值?
how to fix array map is repeating values in loop?
我写了这个函数,但是它从 array_map 循环中给出了错误的输出。
我想要 return 这些值。
我该怎么做。
提前致谢。
数组值为=>
$arr1 - ([d 2] => 3000 [d 3] => 2000 [d deposit] => 4000 )<br>
$arr2 - ( [w 2] => 2500 [w 3] => 2000 [w withdrawal] => 2000 )
代码=>
array_map(function ($v1,$v2) use ($arr_ddesc, $arr_wdesc) {
echo array_search($v1,$arr_ddesc)."-".$v1." ,";
echo array_search($v2,$arr_wdesc)."-".$v2." ,";
},$arr_ddesc,$arr_wdesc);
实际输出=>
d 2-3000 ,w 2-2500
d 3-2000 ,w 3-2000
d deposit-4000 ,w 3-2000
期望的输出=>
d 2-3000 ,w 2-2500
d 3-2000 ,w 3-2000
d deposit-4000 ,w withdrawal-2000
第二个数组的最后输出似乎在重复
这不是尝试遍历值,而是遍历键。然后使用第二个数组中的匹配键(键数组中相同位置的键)访问匹配值...
$wdescKeys = array_keys($arr_wdesc);
foreach ( array_keys($arr_ddesc) as $position => $ddeskKey ) {
echo $ddeskKey."-".$arr_ddesc[$ddeskKey]." ,";
echo $wdescKeys[$position]."-".$arr_wdesc[$wdescKeys[$position]]." ,";
}
我发明了这种实现你的目标的方法:
array_map(
function ($a, $b, $c, $d) {
// format as you need
echo $a . '-' . $b . '; '. $c . '-' . $d . '<br />';
},
array_keys($arr1),
$arr1,
array_keys($arr2),
$arr2
);
我写了这个函数,但是它从 array_map 循环中给出了错误的输出。
我想要 return 这些值。
我该怎么做。
提前致谢。
数组值为=>
$arr1 - ([d 2] => 3000 [d 3] => 2000 [d deposit] => 4000 )<br>
$arr2 - ( [w 2] => 2500 [w 3] => 2000 [w withdrawal] => 2000 )
代码=>
array_map(function ($v1,$v2) use ($arr_ddesc, $arr_wdesc) {
echo array_search($v1,$arr_ddesc)."-".$v1." ,";
echo array_search($v2,$arr_wdesc)."-".$v2." ,";
},$arr_ddesc,$arr_wdesc);
实际输出=>
d 2-3000 ,w 2-2500
d 3-2000 ,w 3-2000
d deposit-4000 ,w 3-2000
期望的输出=>
d 2-3000 ,w 2-2500
d 3-2000 ,w 3-2000
d deposit-4000 ,w withdrawal-2000
第二个数组的最后输出似乎在重复
这不是尝试遍历值,而是遍历键。然后使用第二个数组中的匹配键(键数组中相同位置的键)访问匹配值...
$wdescKeys = array_keys($arr_wdesc);
foreach ( array_keys($arr_ddesc) as $position => $ddeskKey ) {
echo $ddeskKey."-".$arr_ddesc[$ddeskKey]." ,";
echo $wdescKeys[$position]."-".$arr_wdesc[$wdescKeys[$position]]." ,";
}
我发明了这种实现你的目标的方法:
array_map(
function ($a, $b, $c, $d) {
// format as you need
echo $a . '-' . $b . '; '. $c . '-' . $d . '<br />';
},
array_keys($arr1),
$arr1,
array_keys($arr2),
$arr2
);