Когда вам нужно добавить звуки в свой проект, вы сделаете это, сыграв .wav
файл (ы). Затем вам нужно добавить файлы .wav
, подобные этому.
using System.Media; //write this at the top of the code
SoundPlayer my_wave_file = new SoundPlayer("F:/SOund wave file/airplanefly.wav");
my_wave_file.PlaySync(); // PlaySync means that once sound start then no other activity if form will occur untill sound goes to finish
Помните, что вам нужно записать путь к файлу с форматированием слэшей (/
), не используйте обратные косые черты (\
) при указании пути к файлу, иначе вы получите сообщение об ошибке.
Также обратите внимание: если вы хотите, чтобы во время воспроизведения звучания звучали другие вещи, вы можете изменить my_wave_file.PlaySync();
с my_wave_file.PlayAsync();
.
Нам нужно увеличить способ оплаты вместо массива слияния, чтобы предотвратить перезапись старого значения. Ниже код работает для меня
<?php
$shipment = [
[
'Datum' => '2016-07-07',
'C' => 1,
],
[
'Datum' => '2016-07-07',
'C' => 1,
],
[
'Datum' => '2016-07-07',
'Paypal' => 1,
],
[
'Datum' => '2016-07-07',
'Bank' => 1,
],
[
'Datum' => '2016-07-12',
'Bank' => 1,
],
];
$template = ['C' => 0, 'Afterpay' => 0, 'Paypal' => 0, 'Bank' => 0, 'Ideal' => 0];
$result = [];
array_walk($shipment, function ($v) use (&$result, $template) {
// Init by Datum if it is not in array
$date = $v['Datum'];
if (!isset($result[$date])) {
$result[$date] = $template;
}
// Unset Datum to get final payment method only
unset($v['Datum']);
$itemKey = array_keys($v)[0];
// Increase number
$result[$date][$itemKey] += $v[$itemKey];
});
// Dump result
var_dump($result);
Это происходит потому, что array_merge
переопределяет данные, если 2 ключа одинаковы - вам нужно добавить все поля.
Во-первых, измените $array1
с полем инициализации как 0
вместо null
.
Во-вторых, в вашем array_walk
замените $array2[$a] = array_merge($array2[$a], $v);
на:
foreach($v as $k => $v)
$array2[$a][$k] += $v;
Таким образом, вы сложите каждую категорию