// Если нужно полностью удалить элемент, внутри которого есть хотя бы один нулевой lvl
array_filter(
$a,
function (array $item): bool {
foreach ($item as $key => $value) {
if (preg_match('~^lvl\d+$~', $key) === 1 && ($value['count'] === 0 || $value['min'] === 0 || $value['max'] === 0)) {
return false;
}
}
return true;
}
);
// Если нужно удалять только сами нулевые lvl
array_map(
function (array $item): array {
return array_filter(
$item,
function ($value, string $key): bool {
return preg_match('~^lvl\d+$~', $key) !== 1 || ($value['count'] !== 0 && $value['min'] !== 0 && $value['max'] !== 0);
},
ARRAY_FILTER_USE_BOTH
);
},
$a
);
[
[
'name' => 'Alex',
'levels' => [
['index' => 1, 'count' => 5, 'min' => 12, 'max' => 5],
['index' => 2, 'count' => 0, 'min' => 5, 'max' => 7],
['index' => 3, 'count' => 18, 'min' => 0, 'max' => 8],
],
],
[
'name' => 'Igor',
'levels' => [
['index' => 1, 'count' => 5, 'min' => 12, 'max' => 5],
['index' => 2, 'count' => 0, 'min' => 5, 'max' => 7],
['index' => 3, 'count' => 18, 'min' => 0, 'max' => 8],
],
]
];
Тогда и код фильтрации будет простым и понятным.class ProductAmount
{
function __construct($array = array()) {
...
}
function getOfers($items = []) {
...
return $this;
}
function getProfuctStore($inListStore = 'N') {
...
return $this;
}
function setListStore($inListStore = 'Y') {
...
return $this;
}
}
$obj = new ProductAmount();
$res = $obj->getOfers([229411])->getProfuctStore('Y')->setListStore('Y');
/**
* Переделать массив объектов, добавив префикс названию каждого из свойств
* @param array<object> $srcArray исходный массив объектов
* @param string $prefix строка, которую добавить перед названием каждого из свойств
*/
$remap = fn (array $srcArray, string $prefix) => array_map(
function ($obj) use ($prefix) {
$keyValues = get_object_vars($obj);
$keys = array_keys($keyValues);
$values = array_values($keyValues);
return (object) array_combine(
array_map(fn ($key) => $prefix . $key, $keys),
$values
);
},
$srcArray
);
// Test
$babySitters = [
(object) ['a'=>'A1', 'b'=>'B-1'],
(object) ['a'=>'A2', 'b'=>'B-2'],
(object) ['a'=>'A3', 'b'=>'B-3'],
(object) ['a'=>'A4', 'b'=>'B-4', 'c'=>'C4'],
];
$result = $remap($babySitters, 'babysitter_');
echo json_encode($result);
[
{
"babysitter_a": "A1",
"babysitter_b": "B-1"
},
{
"babysitter_a": "A2",
"babysitter_b": "B-2"
},
{
"babysitter_a": "A3",
"babysitter_b": "B-3"
},
{
"babysitter_a": "A4",
"babysitter_b": "B-4",
"babysitter_c": "C4"
}
]
async function one() {fetch('https://api.github.com/repos/javascript-tutorial/en.javascript.info/commits')
.then(res => res.json())
.then(data => { console.log(data) });
}
console.log(one())
DROP FUNCTION IF EXISTS YourFunction;
DELIMITER $$
CREATE FUNCTION YourFunction (qty INT, orderid INT) RETURNS TEXT
BEGIN
DECLARE text_t TEXT;
SELECT `sum` INTO text_t FROM t_order_price_type WHERE `orderid` = orderid LIMIT 1;
RETURN text_t;
END$$
DELIMITER ;
DROP FUNCTION IF EXISTS YourFunction;
DELIMITER $$
CREATE FUNCTION YourFunction (p_qty INT, p_orderid INT) RETURNS TEXT
BEGIN
DECLARE text_t TEXT;
SELECT `sum` INTO text_t FROM t_order_price_type WHERE `orderid` = p_orderid LIMIT 1;
RETURN text_t;
END$$
DELIMITER ;