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