Сортировка или сбор или массив в соответствии с индексом в laravel 5.1

У меня есть следующая коллекция в Laravel:

Collection {#357 ▼
#items: array:11 [▼
"29-04-2016" => array:2 [▼
"posTotal" => "100""posCount" => 1
]
"05-05-2016" => array:6 [▼
"posTotal" => "11""posCount" => 1
"keyedTotal" => "120""keyedCount" => 1
"cashTotal" => "32""cashCount" => 2
]
"10-05-2016" => array:10 [▼
"posTotal" => "67""posCount" => 4
"keyedTotal" => "22""keyedCount" => 1
"cashcardTotal" => "123""cashcardCount" => 1
"refundTotal" => "-50""refundCount" => 1
"cashRefundTotal" => "-10""cashRefundCount" => 1
]
"17-05-2016" => array:2 [▶]
"06-05-2016" => array:2 [▶]
"16-05-2016" => array:2 [▶]
"22-04-2016" => array:2 [▶]
"25-04-2016" => array:2 [▶]
]
}

Теперь я хотел отсортировать по индексу, но нужно конвертировать по дате.

Например, Я хотел показать

 "17-05-2016" => array:2 [▶]
"10-05-2016" => array:10 [▶]
"06-05-2016" => array:2 [▶]

и так далее…

Я попробовал метод сортировки laravel, а также попробовал функцию ksort в php, конвертирующую коллекцию в массив. Но он воспринимает это как строку.

1

Решение

если вы используете массив, вы можете использовать uksort () с функцией обратного вызова. Вы можете написать свое собственное условие в нем.

PHP-код:

// callback function
function cmp($a, $b){
if(strrev($a) == strrev($b)){
return 1;
}
return (strrev($a) < strrev($b)) ? -1 : 1;
}

// semple array
$test = array(
"05-06-2015" => "1",
"07-06-2016" => "3",
"05-08-2016" => "4",
"05-06-2016" => "2");

uksort( $test, "cmp" );

echo "<pre>";
print_r($test);

выход:

Array
(
[05-06-2015] => 1
[05-06-2016] => 2
[07-06-2016] => 3
[05-08-2016] => 4
)
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]