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

时间:2015-05-20 23:30:23

标签: php arrays algorithm binary

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

第一个数组看起来像这样(只显示40个中的10个以节省空间):

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];
    }

}

上面的课程调用对于我能说的这个问题并不重要。 $arrayDump是第一个数组; $ordered是第二个。如您所知,第二个数组将迭代更改为我想要的,但它只包含第一个数组的最后一个值。我把它扔了一个循环试图得到每个值,但我不知所措。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

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

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