maximing
Новичок
Фильтрация многомерного массива
Дан массив:
Нужно получить:
Написал функцию:
Вызываю функцию:
Функция возвращает:
Подскажите, где ошибка?
Дан массив:
PHP:
$TestArray = array(
array(
"badword1",
"1.2",
"1.3",
array(
"badword2",
"1.4.2",
"1.4.3",
array(
"1.4.3.1",
"badword3",
"1.4.3.3",
"1.4.3.4"
)
),
),
"badwordN",
"3",
"4",
"5"
);
PHP:
Array
(
[0] => Array
(
[0] => xxx
[1] => 1.2
[2] => 1.3
[3] => Array
(
[0] =>xxx
[1] => 1.4.2
[2] => 1.4.3
[3] => Array
(
[0] => 1.4.3.1
[1] => xxx
[2] => 1.4.3.3
[3] => 1.4.3.4
)
)
)
[1] => xxx
[2] => 3
[3] => 4
[4] => 5
)
PHP:
function Filter($array)
{
$BadWords = array("badword1", "badword2", "badword3", "badwordN");
foreach($array as $key=>$value)
{
if(is_array($value))
{
Filter($value);
}
else
{
$value = strtolower($value);
$flt = str_replace($BadWords, "xxx", $value);
$array[$key] = $flt;
}
}
return $array;
}
PHP:
$TestArray = Filter($TestArray);
echo "<pre>";
print_r($TestArray);
echo "</pre>";
PHP:
Array
(
[0] => Array
(
[0] => badword1
[1] => 1.2
[2] => 1.3
[3] => Array
(
[0] => badword2
[1] => 1.4.2
[2] => 1.4.3
[3] => Array
(
[0] => 1.4.3.1
[1] => badword3
[2] => 1.4.3.3
[3] => 1.4.3.4
)
)
)
[1] => xxx
[2] => 3
[3] => 4
[4] => 5
)