Php 创建一个数组以显示我需要的所有项目

Php 创建一个数组以显示我需要的所有项目,php,laravel,Php,Laravel,我正在尝试将所有必要的信息放入一个数组中,因此,例如,我的所有T恤都将归入该T恤数组 'tshirts' => [ ] 因此,在该数组中,我希望所有属于T恤类别的产品名称及其价格, 但我现在面临的问题是,我只得到了一部分数据,而不是所有数据 所以我现在得到的是这个 'tshirts' => [ 'name' => 'tshirt 1' ] 而不是该类别中所有T恤的列表 这是我的密码 $products = Product::all(); $productArr

我正在尝试将所有必要的信息放入一个数组中,因此,例如,我的所有T恤都将归入该T恤数组

'tshirts' => [

]
因此,在该数组中,我希望所有属于T恤类别的产品名称及其价格, 但我现在面临的问题是,我只得到了一部分数据,而不是所有数据

所以我现在得到的是这个

'tshirts' => [
    'name' => 'tshirt 1'
]
而不是该类别中所有T恤的列表

这是我的密码

$products = Product::all();

$productArr = [];
foreach($products as $product)
{
    $product[$product->category] => [
        'name' => $product->name
    ];
}

dd($productArr);

它应该是
$productArr
,而不是
$product

$products=Product::all();
$productArr=[];
foreach($products as$product){
$productArr[$product->category][]=[
“名称”=>$product->name
];
}

每次循环查找特定类别时,都会使用包含一个项目的新数组覆盖该类别的数组

您需要附加到它:


而且
=>
错误,您需要
=
在这里,并且数组的名称是
$productArr
<代码>$product是循环中的源项

您的代码有一个语法错误,
$product[$product->category]=>[
应该是
$product[$product->category]=[
。接下来是逻辑错误,您一直在覆盖类别中的数据。您需要另一组括号来在每次迭代中添加一个项目:
$product[$product->category][]=…
$productArr[$product->category][] = [
        'name' => $product->name
];