我有以下两个假设数组:
$values = array("fourth", "first", "second", "third");
$indices = array(3, 0, 1, 2);
根据$values
重新排列$indices
的最快方法是什么?
是否有某种方法可以$values->index_array = $indices
?
答案 0 :(得分:1)
这只是基于问题中的短语的猜测:
基于$ indices重新排列$ value的方法
$values = array("fourth", "first", "second", "third"); $indices = array(3, 0, 1, 2);
array_multisort($indices, $values);
var_dump($values);
输出是:
array(4) {
[0]=>
string(5) "first"
[1]=>
string(6) "second"
[2]=>
string(5) "third"
[3]=>
string(6) "fourth"
}
答案 1 :(得分:0)
我会这样做:
<?php
$newarray = array_fill_keys($indices, $values);
?>
这假设您的指数当然是唯一的。
答案 2 :(得分:-1)
根据问题的定义,ZerkMS的答案是正确的,但你可能最好采用另一种方法来产生结果。
如果可以,而不是生成两个数组:
$values = array("fourth", "first", "second", "third");
$indices = array(3, 0, 1, 2);
而只是生成一个数组并在其上调用ksort:
$valuesToSort = array();
$valuesToSort[3] = 'fourth';
$valuesToSort[0] = 'first';
$valuesToSort[1] = 'second';
$valuesToSort[2] = 'third';
ksort($valuesToSort);