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!