亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

解構數組并使用 PHP 重建它

解構數組并使用 PHP 重建它

PHP
ABOUTYOU 2022-07-22 09:27:32
我有一個二維數組$artists = [    ["name" => "Post Malone", "song" => "Circles", "genre" => "Pop"],    ["name" => "Camila Cabello", "song" => "Liar", "genre" => "Pop"],    ["name" => "Tones and I", "song" => "Dance Monkey", "genre" => "Alternative"],    ["name" => "Billie Eilish", "song" => "Bad Guy", "genre" => "Alternative"],];我正在嘗試編寫一個按流派組織數組并按流派對不同藝術家進行分組的函數。我的輸出應該是這樣的:array (  'Pop' =>  array (    0 => 'Post Malone',     1 => 'Camila Cabello',   ),  'Alternative' =>   array (     0 => 'Tones and I',     1 => 'Billie Eilish',   ),)我試圖先構建外部數組function organizer($artists) {    $genre = array();    for ($i = 0; $i < count($artists); $i++) {        $outterArr = array_push ($artists[$i]["genre"],$genre);        return $outterArr;    }}但堅持如何在外部數組內構造一個新數組。我對編程和 php 很陌生。請展示我的技能,謝謝!
查看完整描述

2 回答

?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

您可以使用array_reduce按流派對條目進行分組:


$artistsByGenre = array_reduce($artists, static function ($byGenre, $artist) {

  $byGenre[$artist['genre']][] = $artist['name'];

  return $byGenre;

}, []);

演示:https ://3v4l.org/3fU83


查看完整回答
反對 回復 2022-07-22
?
白板的微信

TA貢獻1883條經驗 獲得超3個贊

function group_by($key, $data) {

    $result = array();


    foreach($array as $val) {

        if(array_key_exists($key, $val)){

            $result[$val[$key]][] = $val;

        }else{

            $result[""][] = $val;

        }

    }


    return $result; }


$genres = group_by("genre", $artists);


查看完整回答
反對 回復 2022-07-22
  • 2 回答
  • 0 關注
  • 147 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號