Sco*_*ott 2 php arrays sorting
我有一个非常大的数组包含以下数据:
Array
(
[2] => Array
(
[Berlin] => Array
(
[1] => Array
(
[0] => stdClass Object
(
[name] => Joe
[car_name] => Audi
[car_color] => Black
[sid] => 130
)
[1] => stdClass Object
(
[name] => Mark
[car_name] => BMW
[car_color] => Red
[sid] => 135
)
)
[0] => Array
(
[0] => stdClass Object
(
[name] => Lucas
[car_name] => Audi
[car_color] => Yellow
[sid] => 168
)
[1] => stdClass Object
(
[name] => Joe
[car_name] => Volkswagen
[car_color] => Black
[sid] => 170
)
[2] => stdClass Object
(
[name] => Thomas
[car_name] => Ford
[car_color] => Gray
[sid] => 119
)
)
)
[Moscow] => Array
(
[1] => Array
(
[0] => stdClass Object
(
[name] => Matt
[car_name] => Mustang
[car_color] => Black
[sid] => 230
)
[1] => stdClass Object
(
[name] => Suze
[car_name] => Lada
[car_color] => Red
[sid] => 245
)
)
[0] => Array
(
[0] => stdClass Object
(
[name] => Lucas
[car_name] => Unknown
[car_color] => Brown
[sid] => 374
)
[1] => stdClass Object
(
[name] => Mathew
[car_name] => Volkswagen
[car_color] => Blue
[sid] => 589
)
[2] => stdClass Object
(
[name] => Thomas
[car_name] => Ford
[car_color] => Light Blue
[sid] => 741
)
)
)
)
)
Run Code Online (Sandbox Code Playgroud)
现在我想这样排序(请阅读以下//
内容):
Array
(
[2] => Array //from min to max - eg. from 0 to 50
(
[Berlin] => Array //alphabetically from A to Z
(
[1] => Array //from min to max eg. from 0 to 1
(
)
)
)
)
Run Code Online (Sandbox Code Playgroud)
我怎样才能在PHP中实现这一点?我希望我足够清楚,随时可以在评论中询问其他信息.
会是这样的:
// ksort sorts the keys low to high
ksort($array[2]);
// uksort w/ natsort is a full alphanumeric sorting A-Z0-9
uksort($array[2]['Berlin'], 'natsort');
ksort($array[2]['Berlin'][1]);
Run Code Online (Sandbox Code Playgroud)
有关数组和数组函数的文档:
http://us3.php.net/manual/en/book.array.php
功能实例
此示例特定于您的示例; 但是,如果您的数组结构非常动态,则可以创建递归样式函数.
$BigArray = array();
//Sorting the initial array index
ksort($BigArray);
foreach($BigArray as $a)
{
// Sorting Berlin / Moscow here..
uksort($a, 'natsort');
foreach($a as $b)
{
// Sorting the index inside the cities
ksort($b);
}
}
Run Code Online (Sandbox Code Playgroud)