请给我建议。我有一个公司目录。如何按第一个字母对公司名称进行分组。例如:A - 阿迪达斯,华硕...... B - 宝马,宾利等
一系列公司:
array() { [0]=> array(10) { ["id"]=> "1" ["name"]=> "Adidas"} [1]=> array(10) { ["id"]=> "2" ["name"]=> "ASUS"} [2]=> array(10) { ["id"]=> "3" ["name"]=> "BMW"} [3]=> array(10) { ["id"]=> "4" ["name"]=> "Bentley"} }
我想得到:
array() { ['A']=> array {[0]=> array(10) { ["id"]=> "1" ["name"]=> "Adidas"} , [1]=> array(10) { ["id"]=> "2" ["name"]=> "ASUS"}} ['B']=> array {[2]=> array(10) { ["id"]=> "3" ["name"]=> "BMW"},[3]=> array(10) { ["id"]=> "4" ["name"]=> "Bentley"}} }
答案 0 :(得分: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
}