PHP 组数组数据 - 品牌、型号、SKU

标签 php mysql arrays

我正在使用 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/

相关文章:

java - 什么语法用于从 JavaDB 数据库中选择常量字段值?

php - 为什么我的 MySQL 数据库会添加空行?

php按列名对多维数组进行排序

php - 从 View 中的公用文件夹调用 CSS。拉维尔 5.3

php - 如何避免基于 2 个表的重复 slug 并创建唯一的 slug

PHP 内置服务器托管网络字体

java - 提取封装在对象中的数组

python - 在Python中连接和排序数据

php - Shopware 5.2.11 在我的插件中包含 JavaScript

php - Google 本地搜索超过 7 个结果?