如何修复数组映射在循环中重复值?

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
);