我有以下两个假设数组:
$values = array("fourth", "first", "second", "third");
$indices = array(3, 0, 1, 2);
$values
基于重新排列的最快方法是什么$indices
?
也许有什么办法$values->index_array = $indices
吗?
这只是基于问题中的一个短语的猜测:
根据 $indices 重新排列 $values 的方法
$values = array("fourth", "first", "second", "third"); $indices = array(3, 0, 1, 2);
array_multisort($indices, $values);
var_dump($values);
在线演示:http: //ideone.com/UKfNiq
输出是:
array(4) {
[0]=>
string(5) "first"
[1]=>
string(6) "second"
[2]=>
string(5) "third"
[3]=>
string(6) "fourth"
}
我会做:
<?php
$newarray = array_fill_keys($indices, $values);
?>
当然,这假设您的索引始终是唯一的。
根据问题的定义,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);