问题描述
|
用String1按字母顺序对数组进行排序的最佳方法是什么?密钥编号应始终为数字。
之前:
Key | String1 Int1 String2 Int2
--------------------------------------
0 | Alligator 3 Cake 7
1 | Crocodile 17 foobar 9
2 | Bear 1 test 6
3 | Aardvark 2 lolwhat 3
后:
Key | String1 Int1 String2 Int2
--------------------------------------
0 | Aardvark 2 lolwhat 3
1 | Alligator 3 Cake 7
2 | Bear 1 test 6
3 | Crocodile 17 foobar 9
本质上,我有一个包含一堆数组的数组,如何使用特定元素按字母顺序对第一个数组中的这些数组进行排序?
解决方法
您可能想要
usort
,它使您可以定义比较器回调函数。
http://www.php.net/manual/zh/function.usort.php
, 您将需要如下比较功能:
function compare($a,$b)
{
if ($a[\'String1\'] < $b[\'String1\'])
return -1;
if ($a[\'String1\'] > $b[\'String1\'])
return 1;
// At this point the strings are identical and you can go into
// a second value to compare something else if you wish
if ($a[\'String2\'] < $b[\'String2\'])
return -1;
if ($a[\'String2\'] > $b[\'String2\'])
return 1;
// as long as you cover the three situations you are fine.
return 0
}
, function str1cmp($a,$b) {
return strcmp($a[\'string1\'],$b[\'string1\']);
}
usort($array,\'str1cmp\');