istemis oldugun olayi altta verdigim fonksiyon ile cozebilirsin fakat burada ne yapmak istediginde onemli,
dizi yapisini hep bu sekilde dondugunu varsayarsak bunu kullanabilirsin.

<?php

$json = '{"2":{"3":[],"4":[]},"6":{"7":[],"8":[]},"9":{"10":[],"31":[]},"15":{"22":[],"23":[]},"16":{"18":[]},"19":{"20":[],"21":[]},"26":{"28":{"39":[]}},"30":{"5":[],"32":[]},"33":{"34":[],"35":[],"36":[]}}';
$json = json_decode($json, true);

function recursive($datas)
{
    $rec = true;
    foreach ($datas as $id => $data) {
        echo $id . ',';
        if ($data) {
            recursive($data);
        } else {
            $rec = false;
        }
    }
    if (!$rec) {
        echo '<br />' . "\n";
    }
}

recursive($json);