| мне необходимо перебрать многомерный массив в соответствии с запросом пользователя
предположим пользователь ввел:
http://www.dump.com/Page1/Page13/Page131/
|
и получил результат типа:
- Page1
- Page13
- Page132
// и получил результат
|
есть четыре массива:
$c; // Многомерный массив с ключами
$string[0]; // ключ
$string[1]; // псевдоним ключа - имя URI
|
делаю так:
<?php
$string = array
(
0 => array
(
"1",
"1.1",
"1.2",
"1.3",
"1.3.1",
"1.3.2",
"1.3.2.1",
"1.3.2.2",
"1.3.3",
"1.3.4",
"1.3.4.1",
"1.3.4.2",
"1.3.4.3",
"1.3.4.3.1",
"1.3.4.3.2",
"1.3.4.4",
"1.3.5",
"1.3.6",
),
1 => array
(
"Page1",
"Page11",
"Page12",
"Page13",
"Page131",
"Page132",
"Page1321",
"Page1322",
"Page133",
"Page134",
"Page1341",
"Page1342",
"Page1343",
"Page13431",
"Page13432",
"Page1344",
"Page135",
"Page136",
)
);
foreach ($string[0] as $a => $b)
{
$c = &$d; $i = 0;
while($i = strpos($b.'.', '.', $i + 1))
{
$c = &$c[substr($b, 0, $i)];
}
}
$c = &$d;
$REQUEST_URI = $_SERVER["REQUEST_URI"];
preg_match_all("/\/([a-zA-Z0-9]+)/is", $REQUEST_URI, $URI);
print "<pre>";
print_r($c);
print_r($string[0]);
print_r($string[1]);
foreach ($URI[1] as $a1 => $b1)
{
foreach ($string[1] as $a => $b)
{
if($b == $b1)
{
if(is_array($c[1][$string[0][$a]]))
{
foreach ($c[1][$string[0][$a]] as $gg => $ff)
{
print $gg."<br>";
}
}
}
}
}
?>
|
| |