[英]Create multidimensional array from serialized array posted with ajax
我有一個包含三件事的列表,首先是整個列表的標題,然后用戶可以在每個類別下動態添加帶有問題的類別。
我需要將這些列表添加到我的數據庫中,並在發布時使用此數組(使用ajax和serializeArray
):
Array
(
[0] => Array
(
[name] => lijsttitle
[value] => Title
)
[1] => Array
(
[name] => category[]
[value] => category 1
)
[2] => Array
(
[name] => question[]
[value] => question 1
)
[3] => Array
(
[name] => question[]
[value] => question 2
)
[4] => Array
(
[name] => question[]
[value] => question 3
)
[5] => Array
(
[name] => category[]
[value] => category 2
)
[6] => Array
(
[name] => question[]
[value] => question 1
)
[7] => Array
(
[name] => question[]
[value] => question 2
)
)
所有問題和類別都已經按照正確的順序排列,但是我希望將它們組合在一起,如下所示:
Array
(
[title] => Array
(
[value] => Title
)
[category 1] => Array
(
[question] => question 1
[question] => question 2
[question] => question 3
)
[category 2] => Array
(
[question] => question 1
[question] => question 2
)
)
或者,如果有更好的方法,則可能是另一種方法。
我這樣序列化表格:
$( ".lijstbutton" ).on( "click", function( event ) {
event.preventDefault();
url = 'includes/createlist.php';
$lijst = $( '#lijstform' ).serializeArray();
var posting = $.post(url, {lijst: $lijst});
posting.done(function( data ) {
$( ".lijstresult" ).empty().slideDown('fast').append( data );
});
});
為了顯示我當前的數組,我在createlist.php中有以下代碼:
echo '<pre>';
print_r($_POST['lijst']);
echo '</pre>';
最后,我需要鏈接到一個類別的所有問題以及所有鏈接到整個列表標題的所有類別。
因此,您可以有多個列表,每個列表及其類別以及這些類別下方的問題。
我會重新整理一下數據。 您不能在array
多次使用'question'
作為鍵。 $arr
是發布的數據。
$store = [];
// pull off first arr element
$title = array_shift($arr);
// save title to store
$store['title'] = $title['name'];
$currCat = '';
foreach($arr as $a) {
$val = $a['value'];
// handle category
if($a['name'] == 'category[]') {
// save cat name
$currCat = $val;
// init questions array
$store[$currCat] = [];
}
else {
// add question to question array
$store[$currCat][] = $val;
}
}
print_r($store);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.