Какая рекурсия, если:
Array
(
[0] => Array
(
[id] => 1
[name] => Киевский
[surname] => Дмитрий
[id_fat] => 3
[id_mot] => 2
)
[1] => Array
(
[id] => 2
[name] => Ращупкина
[surname] => Елизавета
[id_fat] => 7
[id_mot] => 0
)
С чего вдруг:
"name": "Киевский Дмитрий",
"parent": [{
"name": "Киевский Владимир",
"parent": [{
"parent", которого нет в исходном? И не проще ли организовать на сервере из исходного массива средствами РНР массив такой структуры, в котором все будет так как вам нужно, и только потом json_encode? И для этого вряд ли рекурсия потребуется.