好的伙计们, 我有一个php关联数组,格式如下。
groupdata: Array
(
[0] => Array
(
[id] => 3324
[name] => Testme2
[creationDate] => 31-MAR-14 04.18.29.618000 PM
)
[1] => Array
(
[id] => 3325
[name] => paris
[creationDate] => 31-MAR-14 06.43.28.291000 PM
)
[2] => Array
(
[id] => 3236
[name] => GL_HF
[creationDate] => 29-MAY-14 12.42.01.444000 PM
)
[3] => Array
(
[id] => 3251
[name] => attempting
[creationDate] => 24-FEB-14 03.47.54.732000 PM
)
[4] => Array
(
[id] => 3272
[name] => Testme
[creationDate] => 03-MAR-14 11.24.58.671000 AM
)
)
现在我想根据他们的名字对这个数组进行排序。 我怎样才能实现这一目标?
我曾尝试使用ksort / asort方法,但它并没有下降。
所需的数组是:
groupdata: Array
(
[0] => Array
(
[id] => 3251
[name] => attempting
[creationDate] => 24-FEB-14 03.47.54.732000 PM
)
[1] => Array
(
[id] => 3236
[name] => GL_HF
[creationDate] => 29-MAY-14 12.42.01.444000 PM
)
[2] => Array
(
[id] => 3325
[name] => paris
[creationDate] => 31-MAR-14 06.43.28.291000 PM
)
[3] => Array
(
[id] => 3272
[name] => Testme
[creationDate] => 03-MAR-14 11.24.58.671000 AM
)
[4] => Array
(
[id] => 3324
[name] => Testme2
[creationDate] => 31-MAR-14 04.18.29.618000 PM
)
)
答案 0 :(得分:1)
$price = array();
foreach ($groupdata as $key => $row)
{
$price[$key] = $row['name'];
}
array_multisort($price, SORT_DESC, $groupdata);
答案 1 :(得分:0)
使用usort,这样您就可以定义自己的比较元素的方式:
function cmp($a, $b) {
if ($a['name'] == $b['name']) {
return 0;
}
return ($a['name'] < $b['name']) ? -1 : 1;
}
usort($your_array, "cmp");
答案 2 :(得分:0)
或者,您可以将usort()
与strtolower()
结合使用。考虑这个例子:
$groupdata = array(array('id' => 3324,'name' => 'Testme2','creationDate' => '31-MAR-14 04.18.29.618000 PM'),array('id' => 3325,'name' => 'paris','creationDate' => '31-MAR-14 04.18.29.618000 PM'),array('id' => 3236,'name' => 'GL_HF','creationDate' => '31-MAR-14 04.18.29.618000 PM'),array('id' => 3251,'name' => 'attempting','creationDate' => '31-MAR-14 04.18.29.618000 PM'),array('id' => 3272,'name' => 'Testme','creationDate' => '31-MAR-14 04.18.29.618000 PM'),);
function sorter($a, $b) {
if ($a['name'] == $b['name']){
return 0;
}
return strtolower($a['name']) < strtolower($b['name']) ? -1 : 1;
}
usort($groupdata, 'sorter');