[英]how to get data of nested array
我有多個名稱為module_name
項目,每個項目都有多個輸入字段。 請看下面:
<input type="hidden" value="slideshow" name="module_name[]">
<input type="hidden" value="" name="slide_title[]">
<input type="hidden" value="" name="slide_info[]">
<input type="hidden" value="" name="slide_title[]">
<input type="hidden" value="" name="slide_info[]">
我想在發布時獲取所有數據,所以我嘗試這樣做:
if(isset($_POST['module_name'])){
foreach ($_POST['module_name'] as $k => $v) {
foreach ($_POST['slide_title'] as $key => $value) {
$slide_title = addslashes($_POST['slide_title'][$key]);
$slide_info = addslashes($_POST['slide_info'][$key]);
$arr[] = array(
'slide_title' => $slide_title,
'slide_info' => $slide_info,
);
}
}
print_r($arr); //incorrect data
}
我想獲取數組中每個module_name的數據,但是使用上面的代碼,我沒有在數組中獲取正確的數據,它顯示重復的數據。
如果你有一個以上的slide_title
和slide_info
一個module_name
我認為你必須改變你的結構:
<input type="hidden" value="slideshow" name="module_name[1]">
<input type="hidden" value="" name="slide_title[1][]">
<input type="hidden" value="" name="slide_info[1][]">
<input type="hidden" value="" name="slide_title[1][]">
<input type="hidden" value="" name="slide_info[1][]">
...
<input type="hidden" value="slideshow" name="module_name[2]">
<input type="hidden" value="" name="slide_title[2][]">
<input type="hidden" value="" name="slide_info[2][]">
<input type="hidden" value="" name="slide_title[2][]">
<input type="hidden" value="" name="slide_info[2][]">
因此,通過這種結構,您可以像這樣遍歷數據:
$arr = array();
foreach($_POST['module_name'] as $key => $value) {
$data = array();
foreach($i = 0; $i < count($_POST['slide_title'][$key]); $i++) {
$data[] = array(
"slide_title" => $_POST['slide_title'][$key][$i],
"slide_info" => $_POST['slide_info'][$key][$i]
);
}
$arr[$value] = $data;
}
結果將如下所示:
"module_name_1" => array(
array("slide_title" => "slide_title_1", "slide_info" => $slide_info_1),
array("slide_title" => "slide_title_2", "slide_info" => $slide_info_2),
array("slide_title" => "slide_title_3", "slide_info" => $slide_info_3)
),
"module_name_2" => array(
array("slide_title" => "slide_title_1", "slide_info" => $slide_info_1),
array("slide_title" => "slide_title_2", "slide_info" => $slide_info_2),
array("slide_title" => "slide_title_3", "slide_info" => $slide_info_3)
)
...
您應該注意到,此循環期望每個module_name
的相同數量的slide_title
和slide_info
字段。
我希望這是理想的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.