为了账号安全,请及时绑定邮箱和手机立即绑定

解构数组并使用 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 关注
  • 136 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号