Вам надо менять логику программы.
Как минимум использовать не $tree['status'][$i] и $tree['currency'][$i], а $tree[$i]['status'] и $tree[$i]['currency'].
В этом случае удалять проще.
Далее, удяляя из массива элемент через unset, нумерация остается.
То есть если из $a = array(11, 22, 33, 44, 55); удалить unset($a[0]), то в массиве останется 22, 33, 44, 55, но их индексы будут не 0 - 3, а 1 - 4. Для перестройки массивов используется array_values.
Скорее всего у вас все удаляется, но из-за подобных побочных эффектов удаления вы этого не замечаете.