订单数组与其他阵列php一样



使用jfolder:

$tree = JFolder::listFolderTree('myfolder');

列出这样的树结构:( improne and Invionor2是每个文件夹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个name v"。

现在,我想从数组中以用户定义的顺序订购:

$user_defined_array = [b,v,n];

所以现在$ TROE订购应该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
        )
)

我希望问题很清楚,希望有办法。

您可以这样做,因为我了解您的问题

$user_defined_array = array('b','v','n');
$newarr = array();
$i=0;$k=1;
foreach($user_defined_array as $a){
        foreach($tree as $b){
                if($k==0 && !in_array($b['name'],$user_defined_array)){
                        $newarr[$i] = $b;$i++;
                }else{$k=1;}
                if($b['name']==$a) {
                        $newarr[$i] = $b;
                        $k=0;$i++;
                }
        }
}
var_dump($newarr);

这将根据您的新用户定义的数组输出数组。

最新更新