PHP实现的简单组词算法

?php

//组词算法

function diyWords($arr,$m){

  $result = array();

  if ($m ==1){//只剩一个词时直接返回

    return $arr;

  }

  if ($m == count($arr)){

    $result[] = implode('' , $arr);

    return $result;

  }

  $temp_firstelement = $arr[0];

  unset($arr[0]);

  $arr = array_values($arr);

  $temp_list1 = diyWords($arr, ($m-1));

  foreach ($temp_list1 as $s){

    $s = $temp_firstelement.$s;

    $result[] = $s;

  }

  $temp_list2 = diyWords($arr, $m);

  foreach ($temp_list2 as $s){

    $result[] = $s;

  }

  return $result;

}

//组词算法

$arr=array('裤子','牛仔','低腰','加肥');

$count=count($arr);

for($i=1;$i<=$count;$i++){

  $temp[$i]=diyWords($arr,$i);

}

echo '<pre/>';print_r($temp);

运行结果:

Array
(
[1] => Array
(
[0] => 裤子
[1] => 牛仔
[2] => 低腰
[3] => 加肥
)
[2] => Array
(
[0] => 裤子牛仔
[1] => 裤子低腰
[2] => 裤子加肥
[3] => 牛仔低腰
[4] => 牛仔加肥
[5] => 低腰加肥
)
[3] => Array
(
[0] => 裤子牛仔低腰
[1] => 裤子牛仔加肥
[2] => 裤子低腰加肥
[3] => 牛仔低腰加肥
)
[4] => Array
(
[0] => 裤子牛仔低腰加肥
)
)

猜你喜欢

转载自www.cnblogs.com/sgm4231/p/9860142.html
今日推荐