PHP:如何按键对数组进行分组?

标签 php

我有一个 uploads 数组,如下所示:

$uploads[0] = array('type' => 'upload', 'label' => 'blah');
$uploads[1] = array('type' => 'upload', 'label' => 'blah');
$uploads[2] = array('type' => 'upload', 'label' => 'blah');
$uploads[3] = array('type' => 'upload', 'label' => 'foobar');

我想创建这个数组:

$upload_fields = array(
   'blah' => array(
               array('type' => 'upload', 'label' => 'blah')
               array('type' => 'upload', 'label' => 'blah')
               array('type' => 'upload', 'label' => 'blah')
    ),
   'foobar' => array(
               array('type' => 'upload', 'label' => 'foobar')    
    )
);

基本上我想根据标签对数组进行分组。要分组的数组是动态的,否则我可以这样做:

$array_group_1 = array();
$array_group_2 = array();

foreach($uploads as $upload) {
    if($upload['label'] == 'blah') {
        array_push($array_group_1, $upload);
    }  else {
        array_push($array_group_2, $upload);        
    }
}

$upload_fields = array(
    'blah' => $array_group_1,
    'foobar' => $array_group_2
);

但是由于按键是动态的,我怎样才能实现这一点?

最佳答案

这是我想到的:

$uploads[0] = array('type' => 'upload', 'label' => 'blah');
$uploads[1] = array('type' => 'upload', 'label' => 'blah');
$uploads[2] = array('type' => 'upload', 'label' => 'blah');
$uploads[3] = array('type' => 'upload', 'label' => 'foobar');

foreach($uploads as $u){
    $upload_fields[$u['label']][] = $u;
}

echo '<pre>',print_r($upload_fields),'</pre>';

关于PHP:如何按键对数组进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16740605/

相关文章:

php - 如何在查询字符串中将一些值传递给我的 facebook canvas 应用程序?

php - MySQL 查询返回的分组结果

php - 用户墙 PHP 和 MYSQL

php - Mysql-选择上传2个月以上的数据

php - 自定义 OpenCV 安装问题 [LINUX]

php - 歌曲长度倒计时,需要记录剩余长度

php - CodeIgniter - 使用事件记录清理数据

php - 当我们使用 Raw SQL 时,如何在 Laravel 中使用 like 子句?

php - 获取消息的 MIME 版本会导致 "405 Method Not Allowed"- 错误

php - 从 mysql 查询中提取第一个图像标签