Хранение нескольких значений цикла foreach в одном массиве для использования в PHPExcel - PullRequest
0 голосов
/ 16 января 2019

В настоящее время я зацикливаюсь на массиве с такой структурой:

Categories{
    CategoryName
    CategoryCode
    CategoryDescription

    Products{
        product_info{
            product_code
            product_type{
                CountNumber
                ProductDescription
            }
        }
        prices{
        "wholesale":"250",
        "retail":"400"
        }
    }   
}    

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

$priceResult = array();

foreach($prices->categories as $category){ 
    $categoryName = $category->category_name;
    $categoryCode = $category->category_code;
    $categoryDescription = $category->category_desc;

    foreach($category->products as $product){

        foreach($product->product_info as $info){
            $product_code = $info->product_code;
            foreach($info->product_type as $type){
                $CountNumber = $type->CountNumber;
                $ProductDescription = $type->ProductDescription;
            }
        }
        foreach ($product->prices as $price => $amount) {
            $price_amount = $amount;

        }
    }
}

У меня проблема в том, что я не знаю, как правильно вставить этот новый массив $priceResult, чтобы я мог использовать PHPExcel для преобразования его в формат с подзаголовком.

Формат, который я хотел бы получить из приведенного выше примера, будет выглядеть примерно так

    Test Category 1  |  123  |   Category for Testing
    ==================================================
    PRD123 |  12  |  Product for Testing  |  150.00
    PRD112 |  17  |  Product for Testing  |  250.00

    Test Category 2  |  321  |   New Category for Testing
    =====================================================
    PRD189 |  16  |  Product for Testing  |  450.00
    PRD139 |  34  |  Product for Testing  |  350.00

Таким образом, я хочу вызвать PHPExcel для моего массива $ priceResult, чтобы получить тот формат, в котором я могу перечислить информацию о своей категории, и для каждого продукта в этой категории у меня будет строка продукта. Все будет сгруппировано по главному заголовку категории

    $build = Excel::create($name, function ($excel) use ($priceResult) {

    $excel->setTitle('Test Products');

UPDATE:

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

CategoryCode : 123
CategoryName : TestCategory
CategoryDescription: For Testing
    Products{
        0{
            Product_code : 123,
            CountNumber : 12,
            ProductDescription: Test Product,
            price_amount : 150.00
        },
        1{
            Product_code : 112,
            CountNumber : 32,
            ProductDescription: Test Product 2,
            price_amount : 250.00
        }
    }

Таким образом, каждая категория может быть заголовком, а все ее продукты могут быть строками для каждой категории

...