Я запрашиваю плоский файл DB2 и обычную таблицу для получения информации. Самые свежие данные будут поступать из не плоского файла. Я помещаю оба результата в два отдельных массива. В идеале я думаю, что объединение таблиц было бы лучше, но я пытался, и я не знаю, можно ли объединить плоский файл с неплоской таблицей файлов. Вот массив 1.
Array
(
[0] => Array
(
[pEmpNum] => 450
[trCode] => 1
[pRate] => 40.00
[pWeeksWorked] => 2.00
[pAppr] => J014 1
)
)
И это часть второго
1Array
(
[12] => Array
(
[empNum] => 160
[location] => 2
[payGroup] => 3
[weeksWorked] => 02
[defaultPay] => Y
[unitRate] => 75.00
[rate] => 18.67
[appFlag] =>
[app1] => J014 1
[app2] =>
[app3] =>
[app4] =>
[app5] =>
[unit1] => .00
[unit2] => .00
[unit3] => .00
[unit4] => .00
[unit5] => .00
[gross] => 1400.25
)
[13] => Array
(
[empNum] => 450
[location] => 2
[payGroup] => 3
[weeksWorked] => 00
[defaultPay] =>
[unitRate] => 0.00
[rate] => 24.63
[appFlag] =>
[app1] => J014 1
[app2] =>
[app3] =>
[app4] =>
[app5] =>
[unit1] => .00
[unit2] => .00
[unit3] => .00
[unit4] => .00
[unit5] => .00
[gross] => 0.00
)
)
Я пытаюсь сделать так: если empnum существует в первом массиве, я хочу заменить всю информацию из array1 и поместить ее в array2 для того же empnum. Итак, в этом примере, поскольку empnum 450 существует в обоих массивах, я хочу заменить unitRate на pRate, daysWorked на pWeeksWorked, а app1 на pAppr. Любая помощь или лучшие предложения о том, как это было бы здорово.
Вот мое предложение. $array1
это первый массив и $array2
второй. Вы перебираете их, и если empnum
соответствует вам поменять связанные значения. Это «чистое» решение PHP.
foreach($array1 as $key1 => $data1)
{
foreach($array2 as $key2 => $data2)
{
if ($data1['pEmpNum'] == $data2['empNum'])
{
$data2['unitRate'] = $data1['pRate'];
$data2['weeksWorked'] = $data1['pWeeksWorked'];
$data2['app1'] = $data1['pAppr'];
}
}
}
Других решений пока нет …