Şu şekilde bir denermisiniz kendim yazmadım kodu.
<form method="post" action="form_handler.php">
    <div id="dynamic-fields">
        <div class="field">
            <input type="text" name="title[]" placeholder="Title">
            <input type="text" name="url[]" placeholder="URL">
            <input type="text" name="icon[]" placeholder="Icon">
            <button type="button" class="remove-field">Remove</button>
        </div>
    </div>
    <button type="button" id="add-field">Add Field</button>
    <input type="submit" value="Submit">
</form>
<script>
    document.addEventListener('DOMContentLoaded', function() {
        const dynamicFields = document.getElementById('dynamic-fields');
        const addFieldButton = document.getElementById('add-field');

        addFieldButton.addEventListener('click', function() {
            const field = dynamicFields.querySelector('.field').cloneNode(true);
            dynamicFields.appendChild(field);
        });

        dynamicFields.addEventListener('click', function(event) {
            if (event.target && event.target.className === 'remove-field') {
                event.target.parentElement.remove();
            }
        });
    });
</script>
$titles = $_POST['title'];
$urls = $_POST['url'];
$icons = $_POST['icon'];

$combinedArray = [];
for ($i = 0; $i < count($titles); $i++) {
    $combinedArray[] = [
        "title" => $titles[$i],
        "url" => $urls[$i],
        "icon" => $icons[$i]
    ];
}

print_r($combinedArray);