我有以下用于 Google 地图应用程序的脚本。有关特定地点的信息通过 ajax 发送到 $array 数组,然后添加到 $SESSION['infomarker']。这部分工作正常。但是用户也应该能够删除一个地方(如果他们后悔输入)。
这由 removeElementWithValue() 函数处理,该函数将位置 lat 和 lng 作为参数(此示例脚本中的 $val1 和 $val2)。包含“val1”和“val2”值的数组就会消失,就像它们应该的那样。但是,当我将 $val1 和 $val2 变量更改为 'val3' 和 'val4' 时,包含 'val1' 和 'val2' 的数组返回,而包含 'val3' 和 'val4' 的数组未设置。
我认为 unset() '取消设置'有问题的数组是好的,还是我需要做其他事情?
<?php
session_start();
if(isset($_POST['lat']) && !empty($_POST['lat']) ) {
$array = array(
'titel' => $_POST['titel'],
'comment' => $_POST['comment'],
'lat' => $_POST['lat'],
'lng' => $_POST['lng']
);
$_SESSION['infomarker'][] = $array;
}
$val1 = 'val1';
$val2 = 'val2';
$newarray = removeElementWithValue($_SESSION['infomarker'], "titel", "comment", $val1, $val2);
function removeElementWithValue($array, $key1, $key2, $value1, $value2){
foreach($array as $subKey => $subArray){
if($subArray[$key1] == $value1) {
if($subArray[$key2] == $value2)
unset($array[$subKey]);
}
}
return $array;
}
print_r($newarray);