Php preg_将字符串拆分为多维数组
你好,我被卡住了,只是想寻求帮助 我有两条线:Php preg_将字符串拆分为多维数组,php,multidimensional-array,preg-split,Php,Multidimensional Array,Preg Split,你好,我被卡住了,只是想寻求帮助 我有两条线: C:\Users\Bob\My Documents /Users/Bob/Documents 那就接通了 preg_split('/(?<=[\/\\\])(?![\/\\\])/', $string) 我需要 Array ( [C:\] => Array ( [Users] => Array ( [Bob]
C:\Users\Bob\My Documents
/Users/Bob/Documents
那就接通了
preg_split('/(?<=[\/\\\])(?![\/\\\])/', $string)
我需要
Array
(
[C:\] => Array
(
[Users] => Array
(
[Bob] => Array
(
[My Documents] => array()
)
)
)
)
Array
(
[/] => Array
(
[Users] => Array
(
[Bob] => Array
(
[Documents] => array()
)
)
)
)
最终合并为
Array
(
[C:\] => Array
(
[Users] => Array
(
[Bob] => Array
(
[My Documents] => array()
)
)
)
[/] => Array
(
[Users] => Array
(
[Bob] => Array
(
[Documents] => array()
)
)
)
)
(正确合并,而不仅仅是追加,因此如果另一个字符串以
C:\Users\Dan
开头,那么Dan将出现在第三维上。array\u merge\u recursive()
?)您最好只使用pathinfo()
和realpath()
我假设您正在尝试将*nix目录映射到Windows目录?您最好只使用pathinfo() 和realpath()
我假设您正在尝试将*nix目录映射到Windows one?只需获取由
preg\u split()
返回的数组,并用它们构建树结构:
$tree = array();
foreach ( $strings as $string ) {
$path = preg_split( '/(?<=[\/\\\])(?![\/\\\])/', $string );
$ptr =& $tree;
foreach ( $path as $elem ) {
if ( ! array_key_exists( $elem, $ptr ) )
$ptr[ $elem ] = array();
$ptr =& $ptr[ $elem ];
}
}
$tree=array();
foreach($strings作为$string){
$path=preg_split('/(?只需获取preg_split()
返回的数组,并用它们构建树结构:
$tree = array();
foreach ( $strings as $string ) {
$path = preg_split( '/(?<=[\/\\\])(?![\/\\\])/', $string );
$ptr =& $tree;
foreach ( $path as $elem ) {
if ( ! array_key_exists( $elem, $ptr ) )
$ptr[ $elem ] = array();
$ptr =& $ptr[ $elem ];
}
}
$tree=array();
foreach($strings作为$string){
$path=preg_split('/(?有什么必要有这种奇怪的结构?从一条路径开始,有一个数组的数组的数组…为什么你需要这种结果?下一步是什么?说真的,我不认为这是一种使用数组的好方法。这在我自己的头脑中是有意义的。当你沿着一条路径走的时候,你会更深地进入文件夹结构。为什么不更深一点呢进入数组系列?在这种情况下,数组就像一个文件夹,可以包含更多的文件夹,也可以包含文件夹。有什么必要有这种奇怪的结构?从一个路径开始,有一个数组数组数组数组数组…为什么需要这样的结果?下一步是什么?说真的,我不认为这是正确的使用数组的一个好方法在我自己看来很有意义。当你沿着一条路径前进时,你会深入到文件夹结构中去。为什么不深入到数组系列中去呢?在这种情况下,数组就像一个文件夹,可以包含更多的文件夹,或者旁边的文件夹也可以包含文件夹。不,*nix示例只是为了证明f正则表达式的正斜杠部分和保留初始/
的重要性不*nix示例只是为了证明正则表达式的正斜杠部分和保留初始/
的重要性,讽刺的是,我自己使用引用的树提出了一个非常类似的解决方案。虽然没有使用数组\u键_存在
所以您对它做了一点改进:)讽刺的是,我自己刚刚使用引用的树提出了一个非常类似的解决方案。虽然没有使用数组\u key\u exists
所以您对它做了一点改进:)