PHP:基于其他数组设置索引数组

时间:2013-05-31 01:18:20

标签: php arrays indexing indices

我有以下两个假设数组:

$values = array("fourth", "first", "second", "third");
$indices = array(3, 0, 1, 2);

根据$values重新排列$indices的最快方法是什么?

是否有某种方法可以$values->index_array = $indices

3 个答案:

答案 0 :(得分:1)

这只是基于问题中的短语的猜测:

  

基于$ indices重新排列$ value的方法

$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"
}

答案 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);