【发布时间】:2016-10-19 17:35:42
【问题描述】:
我有一个按 groupName 排序的多维数组(该部分工作正常),并且在每个组内我都有值(groupName、firstName、lastName 等)。基本上我正在尝试按 firstName 对这个多维数组中的每个组进行排序,但我不确定从哪里开始:(。这是我的多维数组:
function group_assoc($array, $key)
{
$array_of_groups = array();
foreach ($array as $value) {
$array_of_groups[$value[$key]][] = $value;
}
return $array_of_groups;
}
$somearray = array(
array('groupName' => 'Group1', 'phoneNumber' => 13037777777, 'firstName'=>'Jeff','lastName' => 'Jeff'),
array('groupName' => 'Group2', 'phoneNumber' => 13033213453, 'firstName'=>'Zumia','lastName' => 'Brown'),
array('groupName' => 'Group3', 'phoneNumber' => 13030098342, 'firstName'=>'Junior','lastName' => 'White'),
array('groupName' => 'Group2', 'phoneNumber' => 13039899231, 'firstName'=>'Ana','lastName' => 'McLwius'),
array('groupName' => 'Group1', 'phoneNumber' => 13033422109, 'firstName'=>'first','lastName' => 'last'),
array('groupName' => 'Group3', 'phoneNumber' => 13033222098, 'firstName'=>'Junior','lastName' => 'Smith')
);
$account_requests = group_assoc($somearray, 'groupName');
print_r($account_request);
并打印我得到的数组:
Array
(
[Group1] => Array
(
[0] => Array
(
[groupName] => Group1
[phoneNumber] => 13037777777
[firstName] => Mike
[lastName] => Jeff
)
[1] => Array
(
[groupName] => Group1
[phoneNumber] => 13033422109
[firstName] => Ben
[lastName] => Morris
)
)
[Group2] => Array
(
[0] => Array
(
[groupName] => Group2
[phoneNumber] => 13033213453
[firstName] => Zumia
[lastName] => Brown
)
[1] => Array
(
[groupName] => Group2
[phoneNumber] => 13039899231
[firstName] => Ana
[lastName] => McLwius
)
)
[Group3] => Array
(
[0] => Array
(
[groupName] => Group3
[phoneNumber] => 13030098342
[firstName] => Junior
[lastName] => White
)
[1] => Array
(
[groupName] => Group3
[phoneNumber] => 13033222098
[firstName] => Junior
[lastName] => Smith
)
)
)
我知道它是否是一个简单的数组(不是多维数组)我可以这样做:
usort($peopleArray, function ($v1, $v2) {
return strcmp($v1['firstName'], $v2['firstName']);
});
请对如何完成此操作有任何想法?提前非常感谢!
【问题讨论】:
-
能否提供原始数组而不是print_r
-
@Kld 是的,我刚刚更新了我的问题。请看一下。非常感谢!!
-
所以首先分组,然后对每个组进行排序。有什么问题?
-
@u_mulder 我已经按组排序了。我的问题是我需要按 firtName 排序,但不知道该怎么做
-
我不是告诉你按组排序,我是告诉你先对项目进行分组,然后他们对每组项目进行排序。
标签: php arrays sorting multidimensional-array laravel-5