当前位置:Gxlcms > PHP教程 > 流程算法解决方案

流程算法解决方案

时间:2021-07-01 10:21:17 帮助过:5人阅读

流程算法
简单说明
我定义咯一个数组,
数组的key表示当前步的ID,下一步的ID对应的value...
我要生成一个这个新的数组
例子:
array(1 => int 7
7 => int 11
8 => int 7
9 => int 8
10 => int 11
11 => int 12
12 => NULL
)
结果就是
array(
1=>7
7=>11
11=>12
12=>NULL
)
当前知道开头位为1.

求算法...
------解决方案--------------------
本帖最后由 xuzuning 于 2014-07-04 21:16:48 编辑

$a = array(
1 => 7,
7 => 11,
8 => 7,
9 => 8,
10 => 11,
11 => 12,
12 => NULL,
);
$i = 1;
while(isset($a[$i])) {
$r[$i] = $a[$i];
$i = $a[$i];
}
$r[$i] = $a[$i];
var_export($r);
array (
1 => 7,
7 => 11,
11 => 12,
12 => NULL,
)

------解决方案--------------------

$map = array(
1 => 7,
7 => 11,
8 => 7,
9 => 8,
10 => 11,
11 => 12,
12 => NULL
);

function getroad($map){
$key = 1;
$result = array();
while($key!=NULL){
$result[$key] = $map[$key];
$key = $map[$key];
}
return $result;
}

$result = getroad($map);

var_export($result);



array (
1 => 7,
7 => 11,
11 => 12,
12 => NULL,
)

人气教程排行