PHP - 将第一个数组的值设置为第二个数组的迭代

PHP - Set first array's values to second array's iterations

我正在尝试将一个数组设置为另一个数组的迭代。我正在研究一种哈希算法,该算法接受他们想要数组的顺序的用户值。它采用他们的代码并将其分解为 40 个二进制块,然后将其转换为十六进制。到目前为止,我可以更改迭代顺序,但它只采用第一个数组的最后一个值并将其设置为第二个数组每次迭代的值。

第一个数组如下所示(仅显示要保存的 40 个数组中的 10 个 space):

Array
(
    [0] => 0111
    [1] => 1000
    [2] => 0110
    [3] => 0010
    [4] => 0011
    [5] => 0001
    [6] => 0011
    [7] => 0010
    [8] => 0011
    [9] => 0101
)

第二个是这样的:

Array
(
    [3] => 0101
    [2] => 0101
    [1] => 0101
    [6] => 0101
    [5] => 0101
    [4] => 0101
    [9] => 0101
    [8] => 0101
    [7] => 0101
    [0] => 0101
)

这里是 PHP 代码:

$arrayDump = $test->binarySplit($name);

$ordered = array();
$orderKey = array(3, 2, 1, 6, 5, 4, 9, 8, 7, 12, 11, 10, 15, 14, 13, 18, 17, 16, 21, 20, 19, 24, 23, 22, 27, 26, 25, 30, 29, 28, 33, 32, 31, 36, 35, 34, 39, 38, 37, 0);

foreach ($orderKey as $key) {
    for ($i = $key; $i < count($arrayDump); $i++) {
        $ordered[$key] = $arrayDump[$i];
    }

}

上面的 class 调用对于这个问题来说不是太重要,我可以说。 $arrayDump 是第一个数组; $ordered 是第二个。如您所知,第二个数组将迭代更改为我想要的,但它只包含第一个数组的最后一个值。我通过一个循环来尝试获取每个值,但我不知所措。任何帮助将不胜感激。

你不需要第二个循环,试试这个:

foreach ($orderKey as $key => $value) {
    $ordered[$key] = $arrayDump[$value];
}