Как перебрать список товаров и категорий на PHP - PullRequest
0 голосов
/ 07 ноября 2018
<? 
 $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.

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

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

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

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

0 голосов
/ 07 ноября 2018

Ваши массивы написаны неправильно. Вы получили многомерный массив здесь (массивы внутри массива). Прочитайте это, чтобы понять, как они написаны и как вы можете работать с ними: 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>';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...