Как перебрать список товаров и категорий по переполнению стека

<?
$categoriesID = array("popular","old");
$product => array (
Product 1
'categoryID' => $categoriesID[1],
'Name' => 'Product One',
Product 2
'categoryID' => $categoriesID[2],
'Name' => 'Product Two',
Product 3
'categoryID' => $categoriesID[2],
'Name' => 'Product Two',
Product 4
'categoryID' => $categoriesID[2],
'Name' => 'Product Two',

);

Как я могу повторить это, чтобы отразить, что продукт 1 принадлежит категории 1, продукт 2 принадлежит категории 2, продукт 3 принадлежит категории 2 и так далее?

Я попробовал следующее, но не повезло ..

foreach($product as $key => $pro){
var_dump($categoriesID[$key]);
}

Я был бы очень признателен за любые предложения или за то, что я делаю неправильно. Цель состоит в том, чтобы вставить отношение в таблицу базы данных, где для вставки продукта требуется category_id.

-1

Решение

Ваши массивы написаны неправильно. Вы получили многомерный массив здесь (массивы внутри массива). Прочитайте это, чтобы понять, как они написаны и как вы можете работать с ними: http://php.net/manual/en/language.types.array.php

Если ваши категории являются числовыми, вам также следует рассмотреть возможность использования числовых значений: 1 вместо «1» внутри массива $ CategoriesID или в зависимости от возможности автоматического приведения в базу данных у вас возникнут проблемы со вставкой строк в виде десятичных дробей.

Вот ваш код, измененный в качестве рабочего примера. Я изменил вывод var_dump для лучшей читаемости результата.

Я также изменил индексы массива, которые вы использовали, так как массивы начинаются с 0. Если вам нужно, чтобы числа все еще начинались с 1, вы можете добавить какое-то бессмысленное значение в начале массива или вычесть 1 при доступе к массиву. Имейте в виду, что это быстрый & грязное решение данной проблемы.

Тем не менее, как сказал Патрик К, вы должны рассмотреть введение в PHP.

<?php

$categoriesID = array('1','2');
$product = array (
array(
'categoryID' => $categoriesID[0],
'Name' => 'Product One',
),
array(
'categoryID' => $categoriesID[1],
'Name' => 'Product Two',
),
array(
'categoryID' => $categoriesID[1],
'Name' => 'Product Two',
),
array(
'categoryID' => $categoriesID[1],
'Name' => 'Product Two',
)
);

foreach($product as $key => $value){
echo var_export($value, true) . '<br>';
}
1

Другие решения

Вы можете дополнительно отредактировать ответ Мариуша, чтобы сделать что-то вроде этого:

foreach($product as $item){
echo $item['Name'].' - '.$item['categoryID'].'<br>';
}

Это даст вам легкий доступ как к названию продукта, так и к идентификатору категории.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector