Я бы хотел, чтобы названия песен в $ Array2 сортировались в том же порядке, что и $ Array1, без потери значений из $ Array2. Значения из $ Array2 должны соответствовать новому порядку каждого ключа в $ Array2. Я считаю, что текущая функция, которую я предоставил, является надежным началом ...
У меня есть два массива (обратите внимание на различия в каждом):
- $ Array1 - введенные пользователем данные.
- $ Array2 - это данные, просмотренные как
внешний источник, который похож на
$ Array1, но не ТОЧНО.
Например ...
$ Array1 содержит:
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
)
$ Array2 содержит:
Array
(
[Taylor Swift - You Belong With Me] => bbbbbb
[Sean Kingston - Fire Burning] => cccccc
[Kelly Clarkson - Gone] => eeeeee
[3OH!3- Don't Trust Me lyrics] => aaaaaa
[Green Day Know Your Enemy Official] => dddddd
)
У меня уже запущена функция, которую я нашел на этом сайте:
function sortArrayByArray(array $toSort, array $sortByValuesAsKeys)
{
$commonKeysInOrder = array_intersect_key(array_flip($sortByValuesAsKeys), $toSort);
$commonKeysWithValue = array_intersect_key($toSort, $commonKeysInOrder);
$sorted = array_merge($commonKeysInOrder, $commonKeysWithValue);
return $sorted;
}
Однако ...
$sortArray = sortArrayByArray($Array2, $Array1);
print_r($sortArray);
$sortArray
возвращает только два результата:
Array
(
[Sean Kingston - Fire Burning] => cccccc
[Kelly Clarkson - Gone] => eeeeee
)