我有一个 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/