Một số lời khuyên chung:
Không gán các phím số như 1 và 2 cho các hàng của bạn - hãy để PHP tạo các khóa. Hoặc, nếu bạn thực sự cần đặt các khóa của riêng mình, thì hãy sử dụng các phím chuỗi và cung cấp cho MỌI hàng một khóa.Những gì bạn hiển thị ở trên có hàng đầu tiên được đánh số 1, sau đó hàng thứ hai, thứ ba và thứ tư không có khóa (vì vậy PHP sẽ gán chúng theo thứ tự 2, 3, 4), sau đó bạn cung cấp cho hàng thứ năm khóa 2 để ghi đè lên hàng thứ hai (có khóa được tạo tự động là 2) - do đó, bạn có bốn hàng mặc dù bạn muốn có năm hàng. Gán các phím hàng một cách nhất quán ngay từ đầu sẽ tránh được các vấn đề như thế này.
Tương tự như vậy, khi bạn làm điều gì đó như thế này:
'col2' => $form['example_select'] = [ ... ]
bạn đang thêm một phần tử biểu mẫu mới vào biểu mẫu ở HAI vị trí - một lần trong bảng và một lần bên ngoài bảng. Nếu đó là ý định của bạn, thì trước tiên hãy khai báo thành phần biểu mẫu bên ngoài bảng và chỉ sử dụng biến bên trong bảng.
Dù sao, sau đây sẽ làm những gì bạn muốn:
tiêu đề $ = [
'col1' => $this->t('COL1'),
'col2' => $this->t('COL2'),
];
$hàng = [];
$rows[] = [
'col1' => 'hàng-1-ô-1',
'col2' => 'hàng-1-ô-2',
];
$rows[] = [
'col1' => 'hàng-2-ô-1',
'col2' => ['dữ liệu' => [
'#type' => 'chọn',
'#title' => $this->t('Chọn phần tử'),
'#options' => [
'1' => $this->t('Một'),
'2' => $this->t('Hai'),
'3' => $this->t('Ba'),
],
]],
];
$form['test'] = [
'#type' => 'bảng chọn',
'#header' => $header,
'#options' => $hàng,
];