У меня есть массив, который я бы хотел отсортировать по значениям из другого. 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;
}
}
}
Откуда появился '4' в' $ array2'? – nickb
Думаю, вам нужно объяснить себя немного лучше. Что значит, что результат должен основываться на массиве 2? Что именно вы хотите сделать? В сортировке пузырьков вы сортируете по строкам, сравнивая, какой из них по алфавиту перед другим, и просто используя Int в позиции 0 массива. Что это за Int? Количество записей в массиве или что? – 8vius