Сделайте несколько массивов в ряд - PullRequest
0 голосов
/ 10 мая 2019

Я не уверен, как это сделать.

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

Пожалуйста, помогите!

 Array
 (
    [0] => Array
        (
            [name] => Admin
            [surname] => Coetzee
            [products] => Array
                (
                    [1] => Array
                        (
                            [0] => shoes xl
                            [1] => 12
                            [2] => 2809000000020
                        )

                [2] => Array
                    (
                        [0] => belts men
                        [1] => 15
                        [2] => 2809000000021
                    )

                [3] => Array
                    (
                        [0] => swatch watch
                        [1] => 
                        [2] => 2809000000035
                    )

                [4] => Array
                    (
                        [0] => shoes medium
                        [1] => 18
                        [2] => 2809000000036
                    )

            )

    )

[1] => Array
    (
        [name] => Anneleen
        [surname] => Van der Merwe
        [products] => Array
            (
                [1] => Array
                    (
                        [0] => shoes xl
                        [1] => 12
                        [2] => 2809000000023
                    )

                [2] => Array
                    (
                        [0] => belts men
                        [1] => 15
                        [2] => 2809000000024
                    )

            )

)

Я хотел бынапример, поместить его в такую ​​таблицу.

Каждый элемент в массиве является строкой в ​​таблице.

<td>Admin coetzee</td>
<td>shoes xl</td>
<td>2809000000020</td> 
<td>Admin coetzee</td>
<td>belts men</td>
<td>2809000000021</td> 
<td>Anneleen</td>
<td>shoes xl</td>
<td>2809000000023</td> 

Вот код, который у меня уже есть:

   $result = DB::select('SELECT   
    users.id, users.name, users.surname,
    applications.table_assigned,
    vendor_pricelist.products

    FROM ((users INNER JOIN applications ON users.id =    

    applications.user_id)
    INNER JOIN vendor_pricelist ON users.id =  
    vendor_pricelist.user_id)
    WHERE applications.event_id =?', [$event_id]);

    $counter = 0;

    $custom_array = [];

    foreach ($result as $value) {

        $custom_array[$counter] = array(

            'name' => $value->name,
            'surname' => $value->surname,
            'products' => (array)json_decode($value->products)

        );

        $counter++;

    }
    $result = $custom_array;

1 Ответ

1 голос
/ 10 мая 2019

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

<table>
    <thead>
        <tr>
            <td>Name</td>
            <td>Product name</td>
            <td>Product identifier</td>
        </tr>
    </thead>
    <tbody>

@foreach ($result as $value)
    <tr>
        <td rowspan="{{count($value['products'])}}">{{$value['name']}} {{$value['surname']}}</td>

    @foreach ($value['products'] as list($productName, $productId, $productIdentifier))
        <td>{{$productName}}</td>
        <td>{{$productIdentifier}}</td>
    </tr>
    <tr>
    @endforeach

    </tr>
@endforeach

    </tbody>
</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...