drhanjuw56233 2018-03-04 21:45
浏览 98
已采纳

PHP拆分和组数组

I am having a hard time figuring out how to modify my array. The original array is this...

$array = array(
array(
    "fruit" => "pineapple",
    "id" => "aaa",
),
array(
    "fruit" => "orange",
    "id" => "aaa",
),
array(
    "fruit" => "apple",
    "id" => "bbb",
),
array(
    "fruit" => "pear",
    "id" => "bbb",
),
array(
    "fruit" => "peach",
    "id" => "ccc",
),
array(
    "fruit" => "melon",
    "id" => "ccc",
)
);

I need to convert this array into an array of keys by id. For example I would want the end result to look like this...

$array = array(
"aaa" => array("pineapple", "orange"),
"bbb" => array("apple", "pear"),
"ccc" => array("peach", "melon"),
);

I have attempted to loops through the array and pull out the things I need and rebuild the array but I cant figure it out. Hopefully someone can help me. Thanks!

  • 写回答

1条回答 默认 最新

  • dongxun2089 2018-03-04 21:54
    关注

    You can do it by making a new array this way:

    $array = array(
        array(
            "fruit" => "pineapple",
            "id" => "aaa",
        ),
        array(
            "fruit" => "orange",
            "id" => "aaa",
        ),
        array(
            "fruit" => "apple",
            "id" => "bbb",
        ),
        array(
            "fruit" => "pear",
            "id" => "bbb",
        ),
        array(
            "fruit" => "peach",
            "id" => "ccc",
        ),
        array(
            "fruit" => "melon",
            "id" => "ccc",
        )
    );
    
    // empty array
    $result = [];
    
    // loop trough data
    foreach($array as $value){
    
        // add item to the $result array. Then make the id the key and the fruit the value
        $result[$value['id']][] = $value['fruit'];
    
    }
    
    //print array
    print_r($result);
    

    The result will be

    Array ( [aaa] => Array ( [0] => pineapple [1] => orange ) [bbb] => Array ( [0] => apple [1] => pear ) [ccc] => Array ( [0] => peach [1] => melon ) )
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么