Cách chuyển dữ liệu mảng 2 chiều qua form bằng PHP

Để gửi dữ liệu từ một mảng hai chiều qua một form trong HTML, bạn có thể sử dụng 03 cách gồm:
Cách 1: Dùng input ẩn có tên động để lưu trữ dữ liệu
Cách 2: Chuyển mảng 2 chiều thành 1 chiều rồi chuyển dữ liệu.
Cách 3: Chuyển mảng 2 chiều thành mảng một chiều của các xâu

Sau đây VniTeach sẽ hướng dẫn các bạn chi tiết cả 03 cách thực hiện, như sau:

Cách 1: Dùng input ẩn có tên động để lưu trữ dữ liệu

<form action="process.php" method="post">
    <?php
    // Mảng hai chiều
    $twoDimensionalArray = array(
        array("apple", "banana", "orange"),
        array("red", "yellow", "orange")
    );
    
    // Lặp qua các phần tử của mảng và tạo input ẩn
    foreach ($twoDimensionalArray as $index => $innerArray) {
        foreach ($innerArray as $innerIndex => $value) {
            echo "<input type='hidden' name='data[$index][$innerIndex]' value='$value'>";
        }
    }
    ?>
    <button type="submit">Submit</button>
</form>

Cách 2: Chuyển mảng 2 chiều thành 1 chiều rồi chuyển dữ liệu

<?php
// Mảng hai chiều
$twoDimensionalArray = array(
    array("apple", "banana", "orange"),
    array("red", "yellow", "orange")
);

// Chuyển mảng hai chiều thành mảng một chiều
$flattenedArray = call_user_func_array('array_merge', $twoDimensionalArray);
?>

<form action="process.php" method="post">
    <?php
    // Lặp qua mảng một chiều và tạo các trường input ẩn
    foreach ($flattenedArray as $index => $value) {
        echo "<input type='hidden' name='data[$index]' value='$value'>";
    }
    ?>
    <button type="submit">Submit</button>
</form>

Cách 3: Chuyển mảng 2 chiều thành mảng một chiều của các xâu

<?php
// Mảng hai chiều
$twoDimensionalArray = array(
    array("apple", "banana", "orange"),
    array("red", "yellow", "orange")
);

// Khởi tạo mảng một chiều
$flattenedArray = array();

// Lặp qua mảng hai chiều và kết hợp các chuỗi thành mảng một chiều
foreach ($twoDimensionalArray as $innerArray) {
    // Sử dụng implode để kết hợp các phần tử của mảng con thành một chuỗi
    $flattenedArray[] = implode(", ", $innerArray);
}
?>

<form action="process.php" method="post">
    <?php
    // Lặp qua mảng một chiều và tạo các trường input ẩn
    foreach ($flattenedArray as $index => $value) {
        echo "<input type='hidden' name='data[$index]' value='$value'>";
    }
    ?>
    <button type="submit">Submit</button>
</form>

Nếu không duyệt theo index thì bạn dùng code sau:

<?php
	// Mảng hai chiều
	$twoDimensionalArray = array(
		array("apple", "banana", "orange"),
		array("red", "yellow", "orange")
	);
?>

<form action="process.php" method="post">
    <?php
		// Khởi tạo mảng một chiều để chứa dữ liệu gửi đi
		$data = array();
		// Lặp qua mảng và tạo các trường input ẩn
		foreach ($twoDimensionalArray as $sub_array) {
			echo "<input type='hidden' name='data[]' value='" . implode(",", $sub_array) . "'>";
		}
    ?>
    <button type="submit">Submit</button>
</form>

Chúc bạn thành công!

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *