我有一个这样的数组,
array[0][0],[1][0],[2][0] 是问题,array[0][1],[1][1],[2][1] 是问题这些问题的答案。
现在我想根据答案的数量对这个数组进行排序。
第一个问题只有一个答案,并且
第二个有两个答案,第三个有三个答案。
排序后的数组应根据该问题的答案数量降序排列。
无论如何在sql中实现这个?或者我们如何在 php 中排序?希望我的问题很清楚。先感谢您。
Array
(
[0] => Array
(
[0] => Array
(
[0] => 12
[1] => 110
[2] => Tom
[3] => Tom@gmail.com
[4] => Hello tom how are you?
[5] => 2013-01-03 14:54:07
)
[1] => Array
(
[0] => Array
(
[0] => 12
[1] => Yes i am fine.
[2] => Arun
[3] => arun@gmail.com
[4] => 2013-01-03 14:55:22
)
)
)
[1] => Array
(
[0] => Array
(
[0] => 12
[1] => 110
[2] => Tom
[3] => Tom@gmail.com
[4] => Hello tom how are you.
[5] => 2013-01-03 14:54:07
)
[1] => Array
(
[0] => Array
(
[0] => 12
[1] => Yes i am fine
[2] => Arun
[3] => arun@gmail.com
[4] => 2013-01-03 14:55:22
)
[1] => Array
(
[0] => 12
[1] => Yes i am fine
[2] => Arun
[3] => arun@gmail.com
[4] => 2013-01-03 14:55:22
)
)
)
[2] => Array
(
[0] => Array
(
[0] => 12
[1] => 110
[2] => Tom
[3] => Tom@gmail.com
[4] => Hello tom how are you.
[5] => 2013-01-03 14:54:07
)
[1] => Array
(
[0] => Array
(
[0] => 12
[1] => Yes i am fine
[2] => Arun
[3] => arun@gmail.com
[4] => 2013-01-03 14:55:22
)
[1] => Array
(
[0] => 12
[1] => Yes i am fine
[2] => Arun
[3] => arun@gmail.com
[4] => 2013-01-03 14:55:22
)
[2] => Array
(
[0] => 12
[1] => Yes i am fine
[2] => Arun
[3] => arun@gmail.com
[4] => 2013-01-03 14:55:22
)
)
)
最佳答案
这应该有效:
function cmp($a, $b)
{
return count($a[1]) > count($b[1]) ? -1 : 1;
}
usort($data, 'cmp');
或者,如果您使用的是 PHP 5.3.0
或更高版本,您可以使用:
usort($data, function ($a, $b) {
return count($a[1]) > count($b[1]) ? -1 : 1;
});
关于php - 在 php 或 mysql 中使用数字中的内部数组对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14151726/