0

我有一个动态的目录数组,如下所示:

array(4) {
  [0]=>
  string(34) "C:\www\www\mb\core"
  [1]=>
  string(59) "C:\www\www\mb\core\plugins\enabled\response"
  [2]=>
  string(56) "C:\www\www\mb\core\plugins\enabled\tests"
  [3]=>
  string(52) "C:\www\www\mb\core\templates\default"
}

我还有另一个目录要测试:C:\www\www\mb\core\plugins\enabled\includes

我需要通过一个函数知道哪个目录最接近这个目录。这里的一切都是未知的和动态的。我已经尝试过 foreach+strpos+string size 但它变得如此丑陋,以至于我停下来来这里寻求帮助,但它也没有奏效。:-P

在此先感谢并为我的英语不好感到抱歉,

维尼修斯

4

1 回答 1

2

好吧,我会完全按照你的描述做……

function closest_path($path, $paths) {
    $maxMatch = null;
    $maxMatchLength = 0;

    foreach($paths as $item) {
        if(strlen($item) > $maxMatchLength && strpos($path, $item) === 0) {
            $maxMatch = $item;
            $maxMatchLength = strlen($item);
        }
    }

    return $maxMatch;
}
于 2012-07-28T22:00:43.607 回答