我有2个数组,第一个包含对象的值,第二个包含它们的ID。
以这种形式:
$values[0] applies to $ids[0]
$values[1] applies to $ids[1]
我需要从最低到最高排序第一个数组(使用sort())(值是整数) - 这不是问题。
问题是,当我使用值对数组进行排序时,我将丢失该值的ID。
我的问题是:如何制作
If $values[0] turns to $values[5], automatically turn $ids[0] to $ids[5]
感谢
更新:
$ values和$ 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;
答案 0 :(得分:4)
首先合并数组,然后按键排序:
$newArr = array_combine($ids, $values);
ksort($newArr);
答案 1 :(得分:1)
听起来你正在寻找array_combine()
:
<?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
Array
(
1 => b,
2 => a,
3 => c,
)
答案 2 :(得分:0)
按照下面的代码......没有测试过......但它必须工作....易于理解..
<?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;
}
}
?>