2014-01-21 3 views
3

У меня есть два массива, оба имеют номера, но извлекаются в определенном порядке из базы данных. Так что я хочу, чтобы отсортировать один из них в режиме присоединения, а второй массив переставить его значения, чтобы соответствовать первому. , напримерСортировка двух соответствующих массивов в PHP

$firstarray=array(14,30,20); 
$secondarray=array(4,2,3); 

Таким образом, в нашем примере я нужен первый массив, чтобы стать (14,20,30) ведьма может быть сделано с помощью функции сортировки, но второй также должны стать (4,3,2) для соответствия с первым массивом.

Любые идеи?

+1

Спасибо за редактирование! – Vagelism22678

ответ

2

Вы должны использовать array_multisort:

$firstarray=array(14,30,20); 
$secondarray=array(4,2,3); 

array_multisort($firstarray, $secondarray); 

var_dump($firstarray, $secondarray); 

Интернет демо: http://ideone.com/FyU1cl

+0

Спасибо, что был нужен именно мне! Никогда не слышал о мультисортной функции! – Vagelism22678

3

Вы можете использовать array_combine, чтобы сделать один массив, а затем отсортировать его

0

Вы можете использовать array_combine использовать первый массив как ключи и второй массив как значения.

$firstarray=array(14,30,20); 
$secondarray=array(4,2,3); 

$Array = array_combine($firstarray, $secondarray); 

Выход:

Array 
(
    [14] => 4 
    [30] => 2 
    [20] => 3 
) 

Затем сортировать ключи Asc.

ksort($Array); 

Выход:

Array 
(
    [14] => 4 
    [20] => 3 
    [30] => 2 
) 

И если вы хотите иметь отдельную $ secondarray вы можете сделать:

$secondarray = array_values($Array); 
$secondarray = array_flip($secondarray); // Values are keys now. 
Смежные вопросы