JFolder の使用:
$tree = JFolder::listFolderTree('myfolder');
次のようなツリー構造をリストします: (ignore と ignore2 は、各フォルダー b、n、v 内のサブフォルダーです)
Array
(
[0] => Array
(
[id] => 1
[parent] => 0
[name] => b
[fullname] => myfolder/b
[relname] => myfolder/b
)
[1] => Array
(
[id] => 2
[parent] => 1
[name] => ignore
[fullname] => myfolder/ignore
[relname] => myfolder/ignore
)
[2] => Array
(
[id] => 3
[parent] => 1
[name] => ignore2
[fullname] => myfolder/ignore2
[relname] => myfolder/ignore2
)
[3] => Array
(
[id] => 4
[parent] => 0
[name] => n
[fullname] => myfolder/n
[relname] => myfolder/n
)
[4] => Array
(
[id] => 5
[parent] => 4
[name] => ignore
[fullname] => myfolder/ignore
[relname] => myfolder/ignore
)
[5] => Array
(
[id] => 6
[parent] => 4
[name] => ignore2
[fullname] => myfolder/ignore2
[relname] => myfolder/ignore2
)
[6] => Array
(
[id] => 7
[parent] => 0
[name] => v
[fullname] => myfolder/v
[relname] => myfolder/v
)
[7] => Array
(
[id] => 8
[parent] => 7
[name] => ignore
[fullname] => myfolder/ignore
[relname] => myfolder/ignore
)
[8] => Array
(
[id] => 9
[parent] => 7
[name] => ignore2
[fullname] => myfolder/ignore2
[relname] => myfolder/ignore2
)
)
したがって、フォルダーの順序を確認できます。0 の名前は「b」、1 の名前は「n」、2 の名前は「v」です。
ここで、配列からユーザー定義の順序で並べ替えたいと思います。
$user_defined_array = [b,v,n];
したがって、$tree の順序付けは必要0 => b, 1 => v and 2 => n
であり、ユーザーが配列を次のよう[n,v,b]
に変更した場合、順序付けはそのようにする必要があります。
たとえば[b,v,n]
、結果の配列のようなユーザー定義の配列は次のようになります。
Array
(
[0] => Array
(
[id] => 1
[parent] => 0
[name] => b
[fullname] => myfolder/b
[relname] => myfolder/b
)
[1] => Array
(
[id] => 2
[parent] => 1
[name] => ignore
[fullname] => myfolder/ignore
[relname] => myfolder/ignore
)
[2] => Array
(
[id] => 3
[parent] => 1
[name] => ignore2
[fullname] => myfolder/ignore2
[relname] => myfolder/ignore2
)
[3] => Array
(
[id] => 4
[parent] => 0
[name] => v
[fullname] => myfolder/v
[relname] => myfolder/v
)
[4] => Array
(
[id] => 5
[parent] => 4
[name] => ignore
[fullname] => myfolder/ignore
[relname] => myfolder/ignore
)
[5] => Array
(
[id] => 6
[parent] => 4
[name] => ignore2
[fullname] => myfolder/ignore2
[relname] => myfolder/ignore2
)
[6] => Array
(
[id] => 7
[parent] => 0
[name] => n
[fullname] => myfolder/n
[relname] => myfolder/n
)
[7] => Array
(
[id] => 8
[parent] => 7
[name] => ignore
[fullname] => myfolder/ignore
[relname] => myfolder/ignore
)
[8] => Array
(
[id] => 9
[parent] => 7
[name] => ignore2
[fullname] => myfolder/ignore2
[relname] => myfolder/ignore2
)
)
質問が明確であることを願っています。方法があることを願っています。