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

PHP:基于其他数组设置索引数组,php,arrays,indexing,indices,Php,Arrays,Indexing,Indices,我有以下两个假设数组: $values = array("fourth", "first", "second", "third"); $indices = array(3, 0, 1, 2); 根据$索引重新排列$值的最快方法是什么 是否有某种方法可以执行$values->index\u array=$index?我会: <?php $newarray = array_fill_keys($indices, $values); ?> 当然,这假设您的索引总是唯一的。这只是根据

我有以下两个假设数组:

$values = array("fourth", "first", "second", "third");
$indices = array(3, 0, 1, 2);
根据
$索引
重新排列
$值
的最快方法是什么

是否有某种方法可以执行
$values->index\u array=$index

我会:

<?php
$newarray = array_fill_keys($indices, $values);
?>


当然,这假设您的索引总是唯一的。

这只是根据问题中的一个短语进行的猜测:

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

在线演示:

输出为:

array(4) {
  [0]=>
  string(5) "first"
  [1]=>
  string(6) "second"
  [2]=>
  string(5) "third"
  [3]=>
  string(6) "fourth"
}

正如问题所定义的那样,虫族的答案是正确的,但是你最好采用另一种方法来产生结果

如果可以,而不是生成两个数组:

$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);

谢谢你,这似乎正是我需要的我不认为这是你想要的。它将
$newarray
的每个元素都设置为相同的值。不过,它会按照他的要求执行。它完美吗?只有OP知道。@bjørnSkagen:如果这解决了您的问题,请将其标记为答案。这将生成一个二维数组,其中每个元素都是
$values
的副本,键来自
$index
。“重新排列$values”是怎么回事?@Danack:当OP无法表达他们的想法时——这很正常)@zerkms你的答案是正确且快速的。我的是正确的,但速度较慢。把它放回去,我会投上一票:)如果你能证明你想要的结果是什么,那会有帮助的。这行不通。如果PHP分配数组键的方式中有任何
$标记
不符合顺序,则键值将丢失。@Phillip:OP有责任确保它们符合顺序。请参阅:“根据$index重新排列$value”@zerms:Fair-ough。这个问题很糟糕。是时候继续前进了。
$valuesToSort = array();
$valuesToSort[3] = 'fourth';
$valuesToSort[0] = 'first';
$valuesToSort[1] = 'second';
$valuesToSort[2] = 'third';

ksort($valuesToSort);