我需要检查一个给定的数组是否与另一个数组匹配。我不知道如何操作第一个数组,或者以其他方式匹配它。
我需要匹配这个数组:
Array
(
[1] => site
[2] => blog
[3] => index.php
)要与此匹配,请执行以下操作:
Array
(
[site] => Array
(
[path] => site
[name] => site
[kind] => directory
[content] => Array
(
[404] => Array
(
[path] => site/404.php
[name] => 404.php
[extension] => php
[kind] => file
)
[blog] => Array
(
[path] => site/blog
[name] => blog
[kind] => directory
[content] => Array
(
[contact] => Array
(
[path] => site/blog/contact.php
[name] => contact.php
[extension] => php
[kind] => file
)
[index] => Array
(
[path] => site/blog/index.php
[name] => index.php
[extension] => php
[kind] => file
)
[about] => Array
(
[path] => site/blog/about.php
[name] => about.php
[extension] => php
[kind] => file
)
)
)
[index] => Array
(
[path] => site/index.php
[name] => index.php
[extension] => php
[kind] => file
)
)
)
)并返回文件的内容数组:
[index] => Array
(
[path] => site/blog/index.php
[name] => index.php
[extension] => php
[kind] => file
)如果您能帮忙,我们将不胜感激!
发布于 2010-02-13 15:41:26
只需对数组进行索引:
$b[$a[1]]['content'][$a[2]]['content'][str_replace('.php', '', $a[3])]如果您的输入可以是可变长度的,请在循环中执行此操作。
发布于 2010-02-13 15:41:21
所以你需要..。
$array2[$array[1]][content][$array[2]][substr(0, stripos($array[3], "."), $array[3])]或者接近的东西..。
发布于 2010-02-13 15:32:31
$path = array('site', 'blog', 'index.php');
$node = array(...); // the tree
for ($i = 0; $i < count($path) && !is_null($node); ++$i) {
$p = $path[$i];
$items = $i ? $node['content'] : $node;
$n = null;
foreach ($items as $it) {
if ($it['name'] == $p) {
$n = $node['content'][$p];
break;
}
}
$node = $n;
}https://stackoverflow.com/questions/2256838
复制相似问题