在开发Laravel应用程序时,我坚持使用数组排序的一个问题。开始时,我使用分区问题按时间将我的数组拆分成相等的块,但现在我有一个问题是按数组的id排序。
我的阵列:
array(2) {
[0]=>
array(3) {
[0]=>
array(8) {
[0]=>
int(4) <----- this is value i need to sort by
[1]=>
int(15)
[2]=>
string(64) "text..."
[3]=>
string(6) "650008"
[4]=>
string(13) "NP08KDT"
[5]=>
int(48)
[6]=>
string(6) "456467"
[7]=>
int(33)
}
[1]=>
array(8) {
[0]=>
int(6)
[1]=>
int(10)
[2]=>
string(64) "text..."
[3]=>
string(6) "650008"
[4]=>
string(13) "NP08KDT"
[5]=>
int(48)
[6]=>
string(6) "456467"
[7]=>
int(33)
}
[2]=>
array(8) {
[0]=>
int(2)
[1]=>
int(8)
[2]=>
string(85) "text..."
[3]=>
string(6) "650008"
[4]=>
string(13) "NP08KDT"
[5]=>
int(48)
[6]=>
string(6) "456467"
[7]=>
int(33)
}
}
[1]=>
array(3) {
[0]=>
array(8) {
[0]=>
int(3)
[1]=>
int(14)
[2]=>
string(158) "text..."
[3]=>
string(6) "650008"
[4]=>
string(13) "NP08KDT"
[5]=>
int(48)
[6]=>
string(6) "456467"
[7]=>
int(33)
}
[1]=>
array(8) {
[0]=>
int(5)
[1]=>
int(12)
[2]=>
string(158) "text..."
[3]=>
string(6) "650008"
[4]=>
string(13) "NP08KDT"
[5]=>
int(48)
[6]=>
string(6) "456467"
[7]=>
int(33)
}
[2]=>
array(8) {
[0]=>
int(1)
[1]=>
int(7)
[2]=>
string(55) "text..."
[3]=>
string(6) "650008"
[4]=>
string(13) "NP08KDT"
[5]=>
int(48)
[6]=>
string(6) "456467"
[7]=>
int(33)
}
}
}
我需要按每个数组的第一个值排序,所以称为我的id。
我需要的输出:
array(2) {
[0]=>
array(3) {
[0]=>
array(8) {
[0]=>
int(1)
[1]=>
int(15)
[2]=>
string(64) "text..."
[3]=>
string(6) "650008"
[4]=>
string(13) "NP08KDT"
[5]=>
int(48)
[6]=>
string(6) "456467"
[7]=>
int(33)
}
[1]=>
array(8) {
[0]=>
int(2)
[1]=>
int(10)
[2]=>
string(64) "text..."
[3]=>
string(6) "650008"
[4]=>
string(13) "NP08KDT"
[5]=>
int(48)
[6]=>
string(6) "456467"
[7]=>
int(33)
}
[2]=>
array(8) {
[0]=>
int(3)
[1]=>
int(8)
[2]=>
string(85) "text..."
[3]=>
string(6) "650008"
[4]=>
string(13) "NP08KDT"
[5]=>
int(48)
[6]=>
string(6) "456467"
[7]=>
int(33)
}
}
[1]=>
array(3) {
[0]=>
array(8) {
[0]=>
int(4)
[1]=>
int(14)
[2]=>
string(158) "text..."
[3]=>
string(6) "650008"
[4]=>
string(13) "NP08KDT"
[5]=>
int(48)
[6]=>
string(6) "456467"
[7]=>
int(33)
}
[1]=>
array(8) {
[0]=>
int(5)
[1]=>
int(12)
[2]=>
string(158) "text..."
[3]=>
string(6) "650008"
[4]=>
string(13) "NP08KDT"
[5]=>
int(48)
[6]=>
string(6) "456467"
[7]=>
int(33)
}
[2]=>
array(8) {
[0]=>
int(6)
[1]=>
int(7)
[2]=>
string(55) "text..."
[3]=>
string(6) "650008"
[4]=>
string(13) "NP08KDT"
[5]=>
int(48)
[6]=>
string(6) "456467"
[7]=>
int(33)
}
}
}
也许你们中的任何人有任何解决方案我怎么能解决这个问题,到目前为止我尝试了很多排序功能,它们似乎都不适合我。
谢谢!
这可能不是最好的方法,但你可以尝试这样的事情。
$tempArray = array();
$sortedArray = array();
foreach ($yourArray as $key1 => $arr){// create 2D array
foreach ($arr as $key2 => $arr2){
$tempArray[] = $arr2;
}
}
foreach ($tempArray as $keyTemp => $tempElem){
$sortingArray[] = $tempElem[0];//get array value you need to sort
}
asort($sortingArray);// sort array maintaining the key
foreach ($sortingArray as $keySort => $sortElem){//loop through sorted array to push elements to a new array
$sortedArray[] = $tempArray[$keySort];
}
print_r($sortedArray);