我正在尝试将一个数组设置为另一个数组的迭代。我正在研究一种哈希算法,该算法接受他们想要数组的用户值。它需要他们的代码并将其分解为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
是第二个。如您所知,第二个数组将迭代更改为我想要的,但它只包含第一个数组的最后一个值。我把它扔了一个循环试图得到每个值,但我不知所措。任何帮助将不胜感激。
答案 0 :(得分:2)
你不需要第二个循环,试试这个:
foreach ($orderKey as $key => $value) {
$ordered[$key] = $arrayDump[$value];
}