как создать коллекцию многомерных массивов и не перезаписывать исходные значения при нажатии новых

вот мой сайт http://69.231.195.173:8888/iadprint/products?product=flyers

когда пользователь выбирает несколько вариантов, относящихся к продукту листовки, и нажимает на добавление в корзину. это то, что код выполняется.

if(isset($_POST['btnAddToCart']) && isset($_GET['product'])) { $product_id = $action->getProductID($_GET['product']); $attribute[$product_id] = array(); foreach ($_POST as $field=>$hash) { $hash = $security->clean_numeric($hash); if($field != "btnAddToCart" && $field != 'price' && !empty($hash)) { array_push($attribute[$product_id], $hash); } } $_SESSION['iadprint_cart'] = $attribute; } 

массив, который формируется, выглядит следующим образом:

 Array ( [10] => Array ( [0] => 30 [1] => 36 ) ) 

внутри этого основного массива 10 ссылается на имя идентификатора флаера. внутри которого 30 и 36 являются идентификаторами выбора.

проблема заключается в том, что если вы выберете визитную карточку и сделаете свой выбор и добавьте в корзину, то можете нажать в формате, подобном картинке, которая находится внутри массива () для нового продукта. данные становятся переопределенными. Я использую array_push, и он должен работать, но это не так. Что я делаю не так?

если вам нужно больше объяснений, дайте мне знать

благодаря

кто-нибудь знает? im не получает ответа. пожалуйста, помогите мне, я действительно застрял в течение нескольких дней.

Решение : –

Если вы хотите добавить элементы массива из второго массива в первый массив, не перезаписывая элементы из первого массива, а не повторно индексируя, используйте оператор объединения массива + :

 $a = array(10 => array(25,26)); $b = array(22 => array(45,66)); $c = $a + $b; print_r($c); 

Выход : –

 Array ( [10] => Array ( [0] => 25 [1] => 26 ) [22] => Array ( [0] => 45 [1] => 66 ) ) 

В этом случае ключи сохраняются.

Тот же ответ на другой вопрос, который вы опубликовали, касающийся этой проблемы: – объединение многомерного массива в другой многомерный массив

Я думаю, что это будет полезно in_array ().