当前位置: 代码迷 >> PHP >> 流程算法解决方案
  详细解决方案

流程算法解决方案

热度:286   发布时间:2016-04-28 18:57:00.0
流程算法
简单说明
我定义咯一个数组,
数组的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,
)
  相关解决方案