Мне было легче:
1) создать функцию, которая будет проверять, находится ли элемент где-либо в родительской иерархии другого. Что-то вроде этого (я не буду писать функцию, сделаю ее с WHILE DO):
is_related(id, parent_id);
в вашем примере
is_related(21, 19) == 1;
is_related(20, 19) == 1;
is_related(21, 18) == 0;
2) используйте подвыбор, что-то например:
select ...
from table t
join table pt on pt.id in (select i.id from table i where is_related(t.id,i.id));
Вы можете перебирать каждый элемент массива URL-адресов, используя функцию array_walk_recursive или цикл foreach
.
Здесь $urls
- ваш входной массив.
array_walk_recursive
: array_walk_recursive($urls, 'urlReplace');
function urlReplace(& $item, $key)
{
if ($key == 'url') { // assuming url key has the URL in your multidimensional array.
$item = str_replace("example.com", "example.ga", $item);
}
}
, а затем выполните print_r($urls);
или var_dump($urls);
, надеюсь, это поможет.
В вашем .htaccess
:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com/test/.* [NC]
RewriteRule ^.*$ example.ga/test/$1 [L,R=301]
RewriteRule ^data/.* /$1 [L]