首页 > 解决方案 > 如何用php交换数组值?

问题描述

我尝试了解一种名为 Tabu Search 的算法,但我在 10 倍循环时遇到了数组问题。

例如,我有一个数组:

$rute = [0, 1, 4, 2, 3, 5, 0]

我想在 10x 循环中移动数组值,所以如果正确,结果如下:

looping 1. [0, 1, 4, 2, 3, 5, 0]
looping 2. [0, 2, 1, 4, 3, 5, 0]
looping 3. [0, 3, 1, 2, 4, 5, 0]
looping 4. [0, 5, 1, 2, 3, 4, 0]
looping 5. [0, 4, 2, 1, 3, 5, 0]
looping 6. [0, 4, 3, 2, 1, 5, 0]
looping 7. [0, 4, 5, 2, 3, 1, 0]
looping 8. [0, 4, 1, 3, 2, 5, 0]
looping 9. [0, 4, 1, 5, 3, 2, 0]
looping 10. [0, 4, 1, 2, 5, 3, 0]

我已经创建了一个代码来构建它,但仍然是错误的。

$rute = array(0, 1, 4, 2, 3, 5, 0);
$end = end($rute);
for($i=0; $i<10; $i++){
    for($j=0; $j<count($rute); $j++){
        if($j!==0 && ($rute[$j] !== $end)){
            $output[$i][$j] = $rute[$j];
        }else{
            $output[$i][$j] = $rute[$j];
        }
    }
}

echo '<pre>';
print_r($output);

标签: phparrays

解决方案


推荐阅读