Я знаю, что было много сообщений, касающихся сортировки массивов, но я выглядел высоко и низко и не могу найти решение своей проблемы.
Я нашел очень хорошую статью здесь:
http://firsttube.com/read/sorting-a-multi-dimensional-array-with-php/
Приведенная выше ссылка великолепна, однако я хочу пойти дальше и отсортировать подраздел массива по порядку другого массива.
Итак, допустим, у нас есть пять песен в массиве плейлистов:
Array
(
[0] => 3oh!3 - Don't Trust me
[1] => Taylor Swift - You Belong with me
[2] => Sean Kingston - Fire Burning
[3] => Green Day - Know Your Enemy
[4] => Kelly Clarkson - Gone
)
И скажем, у нас есть следующая информация, которую мы хотели бы отсортировать в соответствии с порядком нашего массива списков воспроизведения:
Array
(
[0] => Array
(
[trackName] => Taylor Swift - You Belong With Me
[trackLength] => 0
[trackViews] => 0
[trackRating] => 0
)
[1] => Array
(
[trackName] => Sean Kingston - Fire Burning
[trackLength] => 0
[trackViews] => 0
[trackRating] => 0
)
[2] => Array
(
[trackName] => 3OH!3- Dont Trust Me
[trackLength] => 205
[trackViews] => 4570399
[trackRating] => 4.866372
)
[3] => Array
(
[trackName] => Green Day Know Your Enemy
[trackLength] => 191
[trackViews] => 4715494
[trackRating] => 4.9103785
)
[4] => Array
(
[trackName] => Kelly Clarkson: Gone
[trackLength] => 225
[trackViews] => 679019
[trackRating] => 4.8995433
)
)
Итак, еще раз ... Мой вопрос: как я могу получить массив песен, которые будут отсортированы по trackName, чтобы соответствовать тому же порядку массива списка воспроизведения?
Буду признателен за любую помощь или руководство!
Спасибо.
[РЕШЕНИЕ]
У Эдди было главное решение для победы! Реквизит для него! 1up его ответ! :)
Однако я немного изменил решение Эдди. Я только что добавил проверку на сходство в 75% между введенными пользователем названиями песен и названиями песен, которые просматривались на внешних источниках, потому что я не могу контролировать небольшие вариации каждого названия.
$sorted_list = array();
foreach($songs as $song_key=>$song){
foreach($song_info as $info){
similar_text($info['trackName'], $song, $p);
if($p > 75){
$sorted_list[$song_key] = $info;
}
}
}