вот мой сайт 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 ().