在不知道每个键的情况下对嵌套的关联数组进行排序,可以使用PHP的array_multisort()函数来实现。这个函数可以根据一个或多个键对一个或多个数组进行排序。
以下是一个示例代码:
$nestedArray = [
['name' => 'John', 'age' => 25, 'email' => 'john@example.com'],
['name' => 'Jane', 'age' => 30, 'email' => 'jane@example.com'],
['name' => 'Bob', 'age' => 20, 'email' => 'bob@example.com'],
// ...
];
// 获取第一个子数组的所有键
$keys = array_keys($nestedArray[0]);
// 为每个子数组创建一个临时数组,将每个键的值存储在临时数组中
$tempArray = [];
foreach ($nestedArray as $item) {
$temp = [];
foreach ($keys as $key) {
$temp[$key] = $item[$key];
}
$tempArray[] = $temp;
}
// 使用array_multisort()函数对临时数组进行排序
array_multisort(array_column($tempArray, 'age'), SORT_ASC, $tempArray);
// 将排序后的临时数组转换回原始嵌套数组的形式
$sortedArray = [];
foreach ($tempArray as $item) {
$sortedItem = [];
foreach ($keys as $key) {
$sortedItem[$key] = $item[$key];
}
$sortedArray[] = $sortedItem;
}
// 打印排序后的嵌套数组
print_r($sortedArray);
上述代码中,我们首先获取第一个子数组的所有键,然后遍历嵌套数组,为每个子数组创建一个临时数组,将每个键的值存储在临时数组中。然后,我们使用array_multisort()函数对临时数组进行排序,根据age
键的值进行升序排序。最后,我们将排序后的临时数组转换回原始嵌套数组的形式,并打印排序后的结果。
请注意,上述示例仅以age
键为例进行排序,你可以根据需要修改代码以适应其他键的排序需求。