表單中多個同名輸入框(如 checkbox 群組)提交時,若直接用 $_POST['arr'] 只能取到最後一個值。正確做法是在 HTML name 屬性後加 [],PHP 會自動解析為數組。
<input type="checkbox" name="arr" value="1" />
<input type="checkbox" name="arr" value="2" />
<input type="checkbox" name="arr" value="3" />
<input type="checkbox" name="arr" value="4" />
$_POST['arr'] 僅返回最后选中的单个值(如 "4")。
<input type="checkbox" name="arr[]" value="1" />
<input type="checkbox" name="arr[]" value="2" />
<input type="checkbox" name="arr[]" value="3" />
<input type="checkbox" name="arr[]" value="4" />
此時 $_POST['arr'] 將是一個數組:['1', '2', '3', '4'](僅包含被勾選的值)。
<select multiple name="items[]">input[type=text] 批量輸入<?php
if (!empty($_POST['arr']) && is_array($_POST['arr'])) {
$selected = array_map('intval', $_POST['arr']); // 安全過濾
// 入庫、查詢、業務邏輯...
echo "選中了 " . count($selected) . " 項:" . implode(', ', $selected);
}
?>
核心記住一點:HTML name 屬性加 [],PHP 自動識別為數組。這是 PHP 解析表單數據的內置約定,無需額外代碼。