1

アドバイスをください。私は会社のディレクトリを持っています。会社名を最初の文字でグループ化する方法。例: A - アディダス、ASUS... B - BMW、ベントレーなど

会社の配列:

配列() {
    [0]=> array(10) { ["id"]=> "1" ["名前"]=> "アディダス"}
    [1]=> array(10) { ["id"]=> "2" ["name"]=> "ASUS"}
    [2]=> array(10) { ["id"]=> "3" ["name"]=> "BMW"}
    [3]=> array(10) { ["id"]=> "4" ["name"]=> "Bentley"}
}

私は手に入れたい:

配列() {    
   ['A']=> 配列 {[0]=> 配列(10) { ["id"]=> "1" ["名前"]=> "アディダス"} , [1]=> 配列(10) { ["id"]=> "2" ["名前"]=> "ASUS"}}
   ['B']=> 配列 {[2]=> 配列(10) { ["id"]=> "3" ["名前"]=> "BMW"},[3]=> 配列(10) { ["id"]=> "4" ["名前"]=> "ベントレー"}}
}
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 に答える