I have a PHP array that looks like this:
Array{
[0] {
'id' => '0',
'title' => 'foo',
'address' => '123 Somewhere',
}
[1] {
'id' => '1',
'title' => 'bar',
'address' => '123 Nowhere',
}
[2] {
'id' => '2',
'title' => 'barfoo',
'address' => '123 Elsewhere',
}
[3] {
'id' => '3',
'title' => 'foobar',
'address' => '123 Whereabouts',
}
}
and I want to sort it by the ‘title’ key in the nested arrays, to look like this:
Array{
[1] {
'id' => '1',
'title' => 'bar',
'address' => '123 Nowhere',
}
[2] {
'id' => '2',
'title' => 'barfoo',
'address' => '123 Elsewhere',
}
[0] {
'id' => '0',
'title' => 'foo',
'address' => '123 Somewhere',
}
[3] {
'id' => '3',
'title' => 'foobar',
'address' => '123 Whereabouts',
}
}
The first level key values don’t matter since I’m keeping track of each nested array via the nested key ‘id’.
I’ve played with ksort() but with no success.
You should use usort() (i’m assuming PHP 5.3+ here):
Edit:
I hadn’t noticed you wanted to preserve index association, so you actually need to use
uasort()instead, with the same parameters.Edit2:
Here is the pre-PHP 5.3 version: