我只有一个加入两个数组的问题。我尝试使用array_marge。但这个属性对我不起作用。
我有这些数组。
$Record1=Array(
[647242M40642NGG916] => 647242|M40642NGG916|10,
[647242M40725NG6621] => 647242|M40725NG6621|11,
[647242M40732NG0287] => 647242|M40732NG0287|11,
[647242M90830FYIF18] => 647242|M90830FYIF18|10,
[647242M91221EXDU57] => 647242|M91221EXDU57|11,
[647242M91304EX8878] => 647242|M91304EX8878|10)
$Record2=Array(
[647242M40642NGG916] => |96
[647242M40725NG6621] => |95
[647242M40732NG0287] => |99
[647242M90830FYIF18] => |93
[647242M91221EXDU57] => |99
[647242M91304EX8878] => |92)
如果我使用属性array_merge,则array2替换第一个数组的值。
我想加入取决于键的值以及我在第一个数组中的值。
我想找到这个结果。
$Record3=Array(
[647242M40642NGG916] => 647242|M40642NGG916|10|96,
[647242M40725NG6621] => 647242|M40725NG6621|11|95,
[647242M40732NG0287] => 647242|M40732NG0287|11|99,
[647242M90830FYIF18] => 647242|M90830FYIF18|10|93,
[647242M91221EXDU57] => 647242|M91221EXDU57|11|99,
[647242M91304EX8878] => 647242|M91304EX8878|10|92)
你能帮我解决一下这个问题吗?
答案 0 :(得分:0)
看起来你的两个数组有相同的键,你想要合并每个键的值。然后你需要通过编写自己的代码而不是任何php内置函数来弄脏你的手。
您可以通过以下方式执行此操作:
foreach($Record1 as $key => $value){
$Record1[$key] .= isset($Record2[$key]) ? $Record2[$key] : '';
}
var_dump($Record1);
答案 1 :(得分:0)
您可以使用array_walk将逻辑应用于数组的每个元素。
array_walk($Record1, function () use (&$Record1, $Record2) {
$key = key($Record1);
// Check if the key exists in both arrays
if (array_key_exists($key, $Record2)) {
$Record1[$key] = $Record1[$key] . '' . $Record2[$key];
}
next($Record1);
});
var_dump($Record1);
<强>结果:强>
array (size=6)
'647242M40642NGG916' => string '647242|M40642NGG916|10|96' (length=25)
'647242M40725NG6621' => string '647242|M40725NG6621|11|95' (length=25)
'647242M40732NG0287' => string '647242|M40732NG0287|11|99' (length=25)
'647242M90830FYIF18' => string '647242|M90830FYIF18|10|93' (length=25)
'647242M91221EXDU57' => string '647242|M91221EXDU57|11|99' (length=25)
'647242M91304EX8878' => string '647242|M91304EX8878|10|92' (length=25)
答案 2 :(得分:0)
首先,在键的基础上合并数组,然后连接对应于相同键的行
$res = array_merge_recursive($Record1, $Record2);
$res = array_map('join', $res);