1

请给我建议。我有一个公司目录。如何按首字母对公司名称进行分组。例如:A - 阿迪达斯、华硕... B - 宝马、宾利等

公司阵容:

大批() {
    [0]=> array(10) { ["id"]=> "1" ["name"]=> "Adidas"}
    [1]=> array(10) { ["id"]=> "2" ["name"]=> "ASUS"}
    [2]=> 数组(10) { ["id"]=> "3" ["name"]=> "BMW"}
    [3]=> array(10) { ["id"]=> "4" ["name"]=> "Bentley"}
}

我想得到:

大批() {    
   ['A']=> 数组 {[0]=> 数组(10) { ["id"]=> "1" ["name"]=> "阿迪达斯"} , [1]=> 数组(10) { ["id"]=> "2" ["name"]=> "ASUS"}}
   ['B']=> 数组 {[2]=> 数组(10) { ["id"]=> "3" ["name"]=> "BMW"},[3]=> 数组(10) { ["id"]=> "4" ["name"]=> "Bentley"}}
}
4

1 回答 1

0

只需遍历数组并将子数组添加到一个新数组中,键为第一个字符$entry["name"]

$newArray = array_keys(range('A', 'Z')); // ensure a filled array
foreach ($data as $entry) {
    // & ~" " is a shorthand for transforming to uppercase
    $newArray[$entry["name"][0] & ~" ")]][] = $entry; // add $entry to $newArray
}
于 2013-10-05T22:57:59.483 回答