我創建了一個會在整個站點中用於每個用戶的會話數組。一旦用戶更改設置,會話數組的設置隨之一起更改。在數組中搜索數組中的值並替換 - PHP
我創建頁面加載了一個會話陣列:
if (!isset($_SESSION['controller']))
{
$_SESSION['controller'] = array(
'color' => array(
'shell' => 'none',
'graphic-color' => 'none',
'part-color' => 'none'
),
'graphics' => array (
'text' => 'none',
'text-font' => 'none',
'text-style' => 'none',
'graphic' => 'none',
'part' => 'none'
)
);
}
一旦用戶改變設置,使用Ajax調用,我稱之爲PHP文件要修改的相關有史以來設定假設是改變:
JS:
function changeSetting(what, to)
{
$.ajax({
url: "../wp-content/themes/twentytwelve/controller/php/controllerArrayMody.php",
type: "POST",
data: {
'what' : what,
'to' :to
},
success: function() {
}
});
}
what
將包含「殼」或「圖形的顏色」等等...... to
將包含值,它是S無論如何,所以none
將改變。
現在是我的代碼有修改它:
$changeWhat = $_POST['what'];
$to = $_POST['to'];
$newArray = $_SESSION['controller'];
$key = array_search($changeWhat , $_SESSION['controller']); // returns the first key whose value is changeWhat
$newArray[$key][0] = $to; // replace
$_SESSION['controller'] = $newArray;
這裏是輸出:
Array ([color] => Array ([shell] => none [graphic-color] => none [part-color]
=> none) [graphics] => Array ([text] => none [text-font] => none [graphic] =>
none [part] => none) [0] => Array ([0] => Red-Metallic.png))
我的問題是,我在做什麼錯,它的加入到可以說[shell]爲值to
,可以說是Img.test.png
'$ newArray [$鍵[0]' –
沒有不工作,它仍然會添加到數組的末尾。我的輸出將是......'array(..)[0] => Red-Metallic.png [] => Gold-Metallic.png)' –
'var_dump($ key)'看看它包含了什麼,影響'$ _SESSION ['控制器']' –