Я попытался удалить весь родительский массив с помощью функции PHP unset(key)
, основанной на значении из вложенного массива в нем.Удалить элемент массива на основе значения из вложенного массива
Вложенный массив выглядит
Array (
[0] => Array (
[ID] => 9909
[SHIPPING_AMOUNT] => 5
[TOTAL_TAX] => 0
[GRAND_AMOUNT] => 49.97
[ITEMS_AMOUNT] => 44.97
[ITEMS] => Array (
[0] => Array (
[CODE] => TEST
[QTY] => 1
[UNIT_PRICE] => 14.99)
[1] => Array (
[CODE] => NNKIT
[QTY] => 1
[UNIT_PRICE] => 9.99)
[2] => Array (
[CODE] => MAINKIT
[QTY] => 1
[UNIT_PRICE] => 19.99)
)
)
[1] => Array (
[ID] => 9910
[SHIPPING_AMOUNT] => 5
[TOTAL_TAX] => 0
[GRAND_AMOUNT] => 74.96
[ITEMS_AMOUNT] => 69.96
[ITEMS] => Array (
[0] => Array (
[CODE] => NNKIT
[QTY] => 1
[UNIT_PRICE] => 9.99)
[1] => Array (
[CODE] => MAINKIT
[QTY] => 3
[UNIT_PRICE] => 19.99)
)
)
[2] => Array (
[ID] => 9911
[SHIPPING_AMOUNT] => 5
[TOTAL_TAX] => 0
[GRAND_AMOUNT] => 44.98
[ITEMS_AMOUNT] => 39.98
[ITEMS] => Array (
[0] => Array (
[CODE] => MAINKIT
[QTY] => 2
[UNIT_PRICE] => 19.99)
)
)
[3] => Array (
[ID] => 9912
[SHIPPING_AMOUNT] => 5
[TOTAL_TAX] => 0
[GRAND_AMOUNT] => 29.98
[ITEMS_AMOUNT] => 24.98
[ITEMS] => Array (
[0] => Array (
[CODE] => TEST
[QTY] => 1
[UNIT_PRICE] => 14.99)
[1] => Array (
[CODE] => NEWTEST
[QTY] => 1
[UNIT_PRICE] => 9.99)
)
)
и значение, которое я проверить это CODE = MAINKIT
. Если не существует в вложенном массиве, то главный массив должен быть удален (в этом случае родительский array[3]
), но каким-то образом возвращается key
из вложенного массива, а не из родительского.
код PHP:
foreach($array as $key => $value){
if(is_array($value) && $value['CODE'] != 'MAINKIT')
unset($key);
}
Похоже, что делает похож на мой, только один шаг - удаление вложенных '' деталей массива не весь родительский массив – JackTheKnife
Это удаляемый '$ Array [$ Key]', а не ' $ item'. – Barmar
Я вижу проблему, дай мне секунду. – Barmar