What are potential pitfalls of using an incremental array as a storage location for selected options in a standard selection box?

One potential pitfall of using an incremental array as a storage location for selected options in a standard selection box is that if the user deselects an option, the array keys will not be updated to reflect the new selection. This can lead to inconsistencies and errors when processing the selected options. To solve this issue, you can use an associative array where the keys represent the option values and the values represent whether the option is selected or not.

// Initialize an associative array to store selected options
$selectedOptions = [];

// Process form submission
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Update selected options based on form data
    foreach ($_POST['options'] as $option) {
        $selectedOptions[$option] = true;
    }
}

// Display selection box with options
$options = ['Option 1', 'Option 2', 'Option 3'];

echo '<form method="post">';
foreach ($options as $option) {
    $checked = isset($selectedOptions[$option]) ? 'checked' : '';
    echo '<input type="checkbox" name="options[]" value="' . $option . '" ' . $checked . '>' . $option . '<br>';
}
echo '<input type="submit" value="Submit">';
echo '</form>';