我正在使用 mysql 查询返回适合 php 中某些汽车的产品数组,如下所示;
array {
[0]=> array(3) {
["sku"]=> string(16) "123a "
["make"]=> string(20) "Ford"
["model"]=> string(25) "Escort"
}
[1]=> array(3) {
["sku"]=> string(16) "123b"
["make"]=> string(20) "Ford"
["model"]=> string(25) "Escort"
}
[2]=> array(3) {
["sku"]=> string(16) "123c"
["make"]=> string(20) "Ford"
["model"]=> string(25) "Focus"
}
[3]=> array(3) {
["sku"]=> string(16) "123d"
["make"]=> string(20) "Alfa Romeo"
["model"]=> string(25) "159"
}
[4]=> array(3) {
["sku"]=> string(16) "123e"
["make"]=> string(20) "Alfa Romeo"
["model"]=> string(25) "159"
}
}
我正在尝试练习如何使用 foreach 循环来遍历数据并最终得到一个新分组/嵌套的数组,该数组将沿着以下行:
[Ford]=>
{["model"]=>"Escort" ["skus"]=>("123a", "123b)}
{["model"]=>"Focus" ["skus"]=>("123c")}
["Alfa Romeo]=>
{["model"]=>"159" ["skus"]=>("123d", "123e")}
因此,我想按“品牌”对所有记录进行分组,按品牌和型号进行子分组,然后将该品牌型号组合的所有 sku 放在一起。
任何帮助将不胜感激。
最佳答案
你可以这样做(输出不会完全符合你的要求,但会更容易使用):
$output = array();
foreach ($cars as $car) {
$output[$car['make']][$car['model']][] = $car['sku'];
}
这将为您提供以下输出:
[Ford] => Array
[Escort] => Array
[0] => 123a
[1] => 123b
[Focus] => Array
[0] => 123c
[Alfa Romeo] => Array
[159] => Array
[0] => 123d
[1] => 123e
Demo
关于PHP 组数组数据 - 品牌、型号、SKU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22376895/