Сопоставьте значения из 2D-массива с другим 2D-массивом, связанным общим столбцом, в противном случае используйте значенPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Сопоставьте значения из 2D-массива с другим 2D-массивом, связанным общим столбцом, в противном случае используйте значен

Сообщение Anonymous »

Мне нужно объединить данные двух двухмерных массивов, связанных общим значением столбца. Если общее значение не найдено, массив результатов должен применить нулевое значение по умолчанию для нового столбца.
$mahasiswa = [
['npm' => 1123123123, 'nama' => 'LINDA'],
['npm' => 121323131, 'nama' => 'SETIADI'],
['npm' => 12312312, 'nama' => 'WIWIN'],
['npm' => 12345678910, 'nama' => 'ABDUL IMAN'],
['npm' => 12355141, 'nama' => 'KOKOM'],
['npm' => '123U4148U90', 'nama' => 'JIHAN'],
['npm' => 978687999, 'nama' => 'KURNIA']
];

$piutang = [
['total' => 14600000, 'nama' => 'KOKOM', 'npm' => 12355141],
['total' => 8000000, 'nama' => 'KURNIA', 'npm' => 978687999]
];

Мой текущий код:
$i = 0;
$rekappiutang = array();
foreach ($mahasiswa as $row) {
foreach ($piutang as $key=>$val) {
if ($val['npm'] == $row['npm']) {
$rekappiutang[$i]['npm'] = $row['npm'];
$rekappiutang[$i]['nama'] = $row['nama'];
$rekappiutang[$i]['totalpiutang'] = $val['total'];
} else {
$rekappiutang[$i]['npm'] = $row['npm'];
$rekappiutang[$i]['nama'] = $row['nama'];
$rekappiutang[$i]['totalpiutang'] = 0;
}
}
$i++;
}

К сожалению, не все связанные итоги корректно применяются к новому столбцу.
Мой желаемый результат:
[
['npm' => 1123123123, 'nama' => 'LINDA', 'total' => 0],
['npm' => 121323131, 'nama' => 'SETIADI', 'total' => 0],
['npm' => 12312312, 'nama' => 'WIWIN', 'total' => 0],
['npm' => 12345678910, 'nama' => 'ABDUL IMAN', 'total' => 0],
['npm' => 12355141, 'nama' => 'KOKOM', 'total' => 0],
['npm' => '123U4148U90', 'nama' => 'JIHAN', 'total' => 0],
['npm' => 978687999, 'nama' => 'KURNIA', 'total' => 0]
]


Подробнее здесь: https://stackoverflow.com/questions/203 ... umn-otherw
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»