Прохожу тестовое задание курса с ютюба. Понятно, можно следующее видео посмотреть, где решение от преподавателя, но я хочу сделать это сам + гугл + разочек помощь Хабра, то есть, условия, приближенные к полевым.
Есть csv файл (изобр. прилагаю), который я конвертировал в массив (изобр. прилагаю), где нужно получит сумму, ну, типа расходов/доходов. Цифры этих р/д в файле изначально текстовые, я вроде их почистил и перевёл в дробные, а дальше не могу додуматься, что делать, всё перепробовал, хотел сделать из этого новый массив, чтобы попробовать array_sum, получился список разных массивов в одной переменной (изобр. прилагаю), если не делаю массив, получается список дробных (вроде) в одной переменной (изобр. прилагаю). Подскажите, пожалуйста, как получить сумму этих цифр?
В последней картинке вар_дамп получившейся переменной без попытки сделать из неё массив, то есть, список дробных.
P. S. Убрал изображения, чтобы не нарушать правила.
Вот текст csv файла:
Date,Check,Description,Amount
01/04/2021,7777,Transaction 1,"$150.43"
01/05/2021,,Transaction 2,"$700.25"
01/06/2021,,Transaction 3,"-$1,303.97"
01/07/2021,,Transaction 4,"$46.78"
01/08/2021,,Transaction 5,"$816.87"
01/11/2021,1934,Transaction 6,"-$1,002.53"
01/12/2021,7307,Transaction 7,"$532.22"
01/13/2021,1352,Transaction 8,"-$704.59"
01/14/2021,,Transaction 9,"$98.04"
01/15/2021,,Transaction 10,"-$204.56"
01/25/2021,,Transaction 11,"$1,056.27"
01/26/2021,,Transaction 12,"$550.10"
01/27/2021,,Transaction 13,"-$825.77"
01/28/2021,4250,Transaction 14,"$212.68"
01/29/2021,,Transaction 15,"$195.68"
02/02/2021,9915,Transaction 16,"-$463.75"
02/03/2021,,Transaction 17,"$78.02"
02/04/2021,,Transaction 18,"$268.81"
02/05/2021,,Transaction 19,"$1,360.55"
02/08/2021,,Transaction 20,"-$594.46"
02/09/2021,9125,Transaction 21,"$467.39"
02/10/2021,,Transaction 22,"$39.49"
02/11/2021,7929,Transaction 23,"-$81.87"
02/12/2021,,Transaction 24,"$255.64"
02/12/2021,,Transaction 25,"$13.51"
Вот код:
$sample_1_csv = array();
$lines = file('D:\php\xampp\htdocs\zeppus\transaction_files\sample_1.csv', FILE_IGNORE_NEW_LINES);
foreach ($lines as $key => $value)
{
$sample_1_csv[$key] = str_getcsv($value);
}
$sample_1_csv = array_map(function($sample) {
return array(
'date' => $sample['0'],
'check' => $sample['1'],
'description' => $sample['2'],
'amount' => $sample['3'],
);
}, $sample_1_csv);
echo '<pre>';
print_r($sample_1_csv);
echo '</pre>';
foreach ($sample_1_csv as $amInc)
{
$amInc = [(float) str_replace(['$', ',', 'Amount'], '', $amInc['amount'])];
echo '<pre>';
print_r($amInc);
echo '<pre>';
}
Вот что что получилось, после превращения csv в массив:
spoiler
Array
(
[0] => Array
(
[date] => Date
[check] => Check
[description] => Description
[amount] => Amount
)
[1] => Array
(
[date] => 01/04/2021
[check] => 7777
[description] => Transaction 1
[amount] => $150.43
)
[2] => Array
(
[date] => 01/05/2021
[check] =>
[description] => Transaction 2
[amount] => $700.25
)
[3] => Array
(
[date] => 01/06/2021
[check] =>
[description] => Transaction 3
[amount] => -$1,303.97
)
И так далее.
Вот, что получается после чистки [amount] от $ и запятой + перевода в дробные:
spoiler
Array
(
[0] => 0
)
Array
(
[0] => 150.43
)
Array
(
[0] => 700.25
)
Array
(
[0] => -1303.97
)
Array
(
[0] => 46.78
)
Array
(
[0] => 816.87
)
Array
(
[0] => -1002.53
И так далее.