Два массива, один массив для списка элементов, второй для сортировки первого, php-код как? - PullRequest
1 голос
/ 20 июня 2011

Итак, у меня есть функция, которая выводит счет массива, который посещают клиники:

array_id    clinic_id    score_amount
0             1              5
1             2              1
2             3              5
3             5              3
4             8              2

И у меня есть другая функция, которая печатает идентификатор клиники массива, например: Этот массив предназначен для перечисления всех клиник на странице,

array_id    clinic_id
0              1
1              2
2              3
3              4
4              5
5              6
6              7
7              8
8              9
9              10

Теперь моя идея состоит в том, чтобы сделать массив clinic_id отсортированным в соответствии с Score_amount из первого массива.И, наконец, если для конкретного clinic_id не существует Score_amount, просто выполните заказ из второго массива в обычном порядке.

Таким образом, результаты должны быть отсортированы следующим образом:

array_id    clinic_id
0              1
1              3
2              5
3              8
4              2
5              4
6              6
7              7
8              9
9              10

Ответы [ 2 ]

4 голосов
/ 20 июня 2011

Вы можете использовать ассоциативный массив (clinic_id => score_amount) и использовать asort .

1 голос
/ 20 июня 2011

использовать пользовательский компаратор,

function cmp($a, $b)
{
if($a == $b) return 0;   
\\get score returns score or -1 if no score exists
if (getscore($a) == getscore($b) { 
return (index($a) < index($b)) ? -1 : 1;  \\index is index of the number in second array     
}
return (getscore($a) < getscore($b)) ? -1 : 1;
}

usort($a, "cmp");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...