2012-06-23 3 views
0

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

$array1 = ([0]=> Int(2) 
    [1]=>Array(['id']=>String(5) , ['value']=>String(10)) 
    [2]=>Array(['id']=>String(5) , ['value']=>String(10)) 
    [3]=>Array(['id']=>String(5) , ['value']=>String(10)) 
) 

И второй один:

$array2 = (1,4,3) 

Результат должен быть основан на $ массив2:

$array1 = ([0]=> Int(2) 
    [1]=>Array(['id']=>String(5) , ['value']=>String(10)) 
    [3]=>Array(['id']=>String(5) , ['value']=>String(10)) 
    [2]=>Array(['id']=>String(5) , ['value']=>String(10)) 
)   

Я попытался пузырь рода, но не работает:

for ($i = 1 ; $i <= $array1[0] ; $i++){ 
    for ($j = $i+1 ; $j <= $array1[0] ; $j++){ 
     if ($array2[$i] < $array2[$j]){ 
      $temp = $array1[$i]; 
      $array1[$i] = $array1[$j]; 
      $array1[$j] = $temp; 
     } 
    } 
} 
+1

Откуда появился '4' в' $ array2'? – nickb

+0

Думаю, вам нужно объяснить себя немного лучше. Что значит, что результат должен основываться на массиве 2? Что именно вы хотите сделать? В сортировке пузырьков вы сортируете по строкам, сравнивая, какой из них по алфавиту перед другим, и просто используя Int в позиции 0 массива. Что это за Int? Количество записей в массиве или что? – 8vius

ответ

0

Вы пытались проверить array_multisort? Вы можете добавить массив 2 в массив 1, а затем отсортировать его таким образом?

+0

не могли бы вы уточнить? что вы подразумеваете под инъекцией? покажите мне пример. –

Смежные вопросы