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のサイズで試しましたが、非常に醜くなり、立ち止まって助けを求めてここに来ました。それもうまくいきませんでした。:-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 に答える