2015-05-20 2 views
0

Я пытаюсь сделать один массив установленным для итераций другого массива. Я работаю над алгоритмом хэширования, который принимает пользовательское значение порядка, который им нужен. Он берет их код и разбивает его на 40 блоков двоичного кода, которые должны быть преобразованы в шестнадцатеричные. Пока я могу изменить порядок итераций, но он принимает только последнее значение первого массива и устанавливает его как значение для каждой итерации второго массива.PHP - Установить значения первого массива для итераций второго массива

Первый массив выглядит следующим образом (показаны только 10 из 40 для экономии места):

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 - второй. Как вы можете сказать, второй массив меняет итерацию на то, что я хочу, но она содержит только последнее значение из первого массива. Я бросил его через цикл, чтобы попытаться получить каждое значение, но я в недоумении. Любая помощь будет оценена по достоинству.

ответ

2

Вам не нужен второй цикл, попробуйте следующее:

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

Спасибо. Я был одержим порядком итераций, я не думал о том, чтобы оставить порядок прежним и переупорядочить ценности. Я ценю вашу помощь в качестве второго ума, чтобы посмотреть на нее. – Mitch