Php | Array | Проверка
Если очень кратко
$products = [53238, 50572, 50573, 50586];
И есть массив
$checks = [
49547 => [['pid' => 15340, 'add' => 50565], ['pid' => 12182, 'add' => 50574] ],
53238 => [['pid' => 50572, ], ['pid' => 50573] ],
53240 => [['pid' => 50587, ], ['pid' => 50590] ],
49546 => [['pid' => 50586, ], ['pid' => 50581] ],
];
Как видите, у меня есть список продуктов в корзине. А так же массив, где есть Комплекты товаров и массивы с их товарами. когда я удаляю Комплект - его товары остаются. Как мне сделать проверку, чтобы, к примеру
53238 => [['pid' => 50572, ], ['pid' => 50573] ],
и в корзине есть этот комплект, значит эти 2 товара и сам комплект не трогаем. А вот продукт с id 50586 - лишний, так как нет его комплекта.
Как мне сделать обычную проверку? Просто условие, а далее я сам сделаю удаление и тд. Спасибо!)
Ответы (1 шт):
Автор решения: delikates
→ Ссылка
Как-то так, если я Вас правильно понял
$products = [53238, 50572, 50573, 50586];
$checks = [
49547 => [['pid' => 15340, 'add' => 50565], ['pid' => 12182, 'add' => 50574] ],
53238 => [['pid' => 50572, ], ['pid' => 50573] ],
53240 => [['pid' => 50587, ], ['pid' => 50590] ],
49546 => [['pid' => 50586, ], ['pid' => 50581] ],
];
foreach( $checks as $idx => $check) {
if ( in_array( $idx, $products ) ) {
$values = array_values( $check );
foreach( $values as $value ) {
if ( !in_array( $value, $products ) ) {
//do something...
}
}
}
}