Oтфильтровать новый массив объектов PHP
[
{
"datadoc: "2021-02-05 20:00:00",
"summ_prih": "22420.00",
"kod": "020045"
},
{
"datadoc": "2021-02-01 16:28:21",
"summ_prih": "4969.00",
"kod": "040041"
},
{
"datadoc": "2021-02-02 16:29:04",
"summ_prih": "1530.00",
"kod": "040041"
},
{
"datadoc": "2021-02-01 16:30:11",
"summ_prih": "1150.00",
"kod": "040041"
},
]
Подскажите как вернуть новый массив объектов проходящих по условию где datadoc содержит 2021-02-01 и kod = 040041
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
<?php
$arr = [
[
"datadoc" => "2021-02-05 20:00:00",
"summ_prih"=> "22420.00",
"kod"=> "020045"
],
[
"datadoc" => "2021-02-01 16:28:21",
"summ_prih" => "4969.00",
"kod" => "040041"
],
[
"datadoc" => "2021-02-02 16:29:04",
"summ_prih" => "1530.00",
"kod" => "040041"
],
[
"datadoc" => "2021-02-01 16:30:11",
"summ_prih" => "1150.00",
"kod" => "040041"
],
];
$getfilteredData = function($arr, $datadoc, $kod) {
return array_filter($arr, function($item) use ($datadoc, $kod) {
return strpos($item['datadoc'], $datadoc) !== false && $item['kod'] === $kod;
});
};
$filteredData = $getfilteredData($arr, '2021-02-01', '040041');
//-----------------------------
print_r($filteredData);
//-----------------------------
Array
(
[1] => Array
(
[datadoc] => 2021-02-01 16:28:21
[summ_prih] => 4969.00
[kod] => 040041
)
[3] => Array
(
[datadoc] => 2021-02-01 16:30:11
[summ_prih] => 1150.00
[kod] => 040041
)
)