Фильтрация многомерного массива

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
)
Подскажите, где ошибка?
 

korchasa

LIMB infected
Ты кое что забыл. Дебаггер в руки. Хотя тут и без него можно.
 
Сверху