我需要在View Laravel中对我的数据进行分组

时间:2015-07-30 11:25:06

标签: laravel laravel-4

{
"id": "1",
"item_quantity": "3",
"item_id": "3",
"item_color": "White",
},
{
"id": "2",
"item_quantity": "3",
"item_id": "3",
"item_color": "Black",
},

{
"id": "3",
"item_quantity": "3",
"item_id": "4",
"item_color": "White",
},

大家好,我使用foreach在Laravel输出的是这个,
ItemId:3 ItemQuantity:3 ItemColor:白色
ItemId:3 ItemQuantity:3 ItemColor:黑色
ItemId:4 ItemQuantity:3 ItemColor:White

但我需要的是将这些项目与这样的相同ID组合起来 ItemID:3 ItemQuantity:3 ItemColor:White / ItemQuantity:3 ItemColor:黑色
ItemId:4 ItemQuantity:3 ItemColor:白色

BTW我在我的视图中使用Table,而Foreach显示可能是数据。

谢谢你们..这是Laravel 4.2

2 个答案:

答案 0 :(得分:0)

@foreach($items as $item1)
  <tr>{{$item1->id}}</td>
   <td>{{$item1->item_quantity}}</td>
   <td>{{$item1->item_color}}</td>
     @foreach($items as $item2)
       @if($item1->item_id == $item2->item_id)
          <td>{{$item2->item_quantity}}</td>
          <td>{{$item2->item_color}}</td>
       @endif
    @endforeach
   </tr> 
@endforeach

答案 1 :(得分:0)

我不确定你的输入对象是什么,但是这样:

function group_items($items){
    $groupedOutput = array();
    for each($items as $item){
        $key = 'id_'.$item;
        if(!array_key_exists($key, $groupedOutput)){
            $groupedOutput[$key] = array();
        }
        $groupedOutput[$key][] = $item;
    }
    return $groupedOutput;
}

function print_items($groupedOutput){
    for each($groupedOutput as $items){
        for each($items as $item){
            $itemId = $item['item_id'];
            $itemQuantity = $item['item_quantity'];
            $itemColor = $item['item_color'];
            echo "ItemID:$itemId ItemQuantity:$itemQuantity ItemColor:$itemColor/ ";
        }
    }
}


//To group output
$groupedOutput = group_items($items);

//To print grouped output
print_items($groupedOutput);
// OR
var_dump(json_encode($groupedOutput));