Convert array of strings in multi-dimensional with nested children PHP

I have this array of strings:

<?php 
$arr = [
    'Parent 1||First child',
    'Parent 1||Second child',
    'Parent 1||Second child||ThirdLevel',
]; ?>

I want the following array returned:

<?php 
$need = [
[
    'id' => 'Parent 1', 
    'name' => 'Parent 1',
    'children' => [
        [
            'id' => 'Parent 1||First child', 
            'name' => 'First child'
        ],
        [
            'id' => 'Parent 1||Second child', 
            'name' => 'Second child',
            'children' => [
                ['id' => 'Parent 1||First child||ThirdLevel', 'name' => 'ThirdLevel']
            ]
        ]
    ]
]
];

I've tried too many times with no luck based on examples in StackOverflow, but none of these match with my desired result.

Is there a way to do this?