/ / Sort array por outro - PHP - php, arrays, sorting

Ordenar array por outro - PHP - php, arrays, sorting

Eu tenho 2 matrizes, a primeira contém valores de objetos e a segunda contém seus IDs.
Nesta forma:

$values[0] applies to $ids[0]
$values[1] applies to $ids[1]

Eu preciso classificar primeiro array (usando sort ()) do menor para o maior (valores são ints) - Isso não é problema. O problema é que quando eu ordenar array com valores, perderei ID desse valor.
Minha pergunta é: como fazer isso

If $values[0] turns to $values[5], automatically turn $ids[0] to $ids[5]


obrigado


Atualizar:
Conteúdo de $ values ​​e $ ids:

$values[0] = 1.5;
$values[1] = 2.4;
$values[2] = 15.7;
$values[3] = 11.7;
$values[4] = 4.8;
$values[5] = 0.4;

$ids[0] = 1;
$ids[1] = 2;
$ids[2] = 3;
$ids[3] = 4;
$ids[4] = 5;
$ids[5] = 6;

Respostas:

4 para resposta № 1

Combine os arrays primeiro e, depois, classifique por chave:

$newArr = array_combine($ids, $values);
ksort($newArr);

1 para resposta № 2

Parece que você está procurando array_combine():

Exemplo

<?php
$ids = array(2, 1, 3); // IDs
$values = array(a, b, c); // Values
$array = array_combine($ids, $values); // Combine arrays as ID => Value
ksort($arrays); // Sort new array
print_r($array); // Echo array

Saída

Array
(
1 => b,
2 => a,
3 => c,
)

0 para resposta № 3

Siga o código abaixo ... não testei ... mas deve funcionar .... Fácil de entender ..

<?php
$count = count($values);
for($i = 0; $i<$count; $i++)
{
if($i == 0)
{
$sort1 = $values[$i];
$sort2 = $ids[$i];
$temp = 0;
}
if($sort1 > $values[$i])
{
$sort1 = $values[$i];
$sort2 = $ids[$i];

$temp_val = $values[$temp];
$temp_id = $ids[$temp];

$values["temp"] = $values[$i];
$ids["temp"] = $ids[$i];

$temp = $i;

$values[$i] = $temp_val;
$ids[$i] = $temp_id;

}
}
?>