PHP - удалить элемент в многомерном массиве

У меня есть этот массив:

Array ( 
[0] => Array ( [0] => b [1] => d [2] => **c** [3] =>a [4] => ) 

[1] => Array ( [0] => **c** [1] => a [2] => d [3] => [4] => ) 

[2] => Array ( [0] => b [1] => d [2] => a [3] => [4] => )

[3] => Array ( [0] => **c** [1] => d [2] => a [3] =>b [4] => )

)

и нужно удалить (unset?) все элементы, где значение "c" так что в итоге получается:

Array ( 
[0] => Array ( **[0] => b [1] => d [2] => a [3] => [4] =>** ) 

[1] => Array ( **[0] => a [1] => d [2] => [3] =>** ) 

[2] => Array ( [0] => b [1] => d [2] => a [3] => [4] => )

[3] => Array ( **[0] => d [1] => a [2] =>b [3] =>** )

)

Элемент удаляется, а остальные элементы сдвигаются вверх. Я знаю, что unset не переиндексирует массив. Невозможно получить значение unset для всех многомерных массивов, но только с одним массивом. Можно ли впоследствии переиндексировать массивы? Ценить это.

Код НИЖЕ удаляет элементы, где значение равно «с» но индекс первого элемента не переиндексируется. Может кто-нибудь предложить решение для повторной индексации внутренних массивов?

$i=0;
foreach ($array as $val)
    {
    foreach ($val as $key => $final_val)
        { 

        if ($final_val =="$search_value") 
            {
             unset($array[$i][$key]);
            }
        } 
    i = $i + 1;
    }

Ответы на вопрос(2)

Ваш ответ на вопрос