更新php数组中的值

时间:2016-04-09 00:51:34

标签: php arrays

基本上,每次我为一个唯一名称添加一个数字时,它都被添加到另一个页面。在某些时候,我想检查数组并更新该数字以获取唯一名称(如果它已经存在)。

例如,

Benj 25
Mark 68 
Sam 34

如果我在Benj下添加一个新值50,我现在希望总数为75

我理解这与检查array_key_exists功能有关,但它会继续打印单词数组,我甚至不知道如何获得该数字并更新它

这是我的代码:     

$name = isset($_GET['name']) ? $_GET['name'] : "";
$number = isset($_GET['number']) ? $_GET['number'] : "";

if(!isset($_SESSION['numbers'])){
    $_SESSION['numbers'] = array();
}


if(array_key_exists($name, $_SESSION['numbers'])){
    print_r(array_keys($_SESSION['numbers'][$name]));
}
else{
    $_SESSION['numbers'][$name] = array("name"=>$name, "number"=>$number);
}
?>

编辑:完成var_dump($_SESSION["numbers"]);之后我得到了这个:

array(2) { [3]=> array(2) { ["name"]=> string(1) "3" ["number"]=> string(2) "55" } [2]=> array(2) { ["name"]=> string(1) "2" ["number"]=> string(2) "54" } } 

我认为我正在以正确的方式解决这个问题,我不知道如何检索和更新数字

任何帮助都意味着很多

1 个答案:

答案 0 :(得分:0)

你是说这个?



$name = isset($_GET['name']) ? $_GET['name'] : "";
$number = isset($_GET['number']) ? $_GET['number'] : "";

if(!isset($_SESSION['numbers'])){
    $_SESSION['numbers'] = array();
}


if(array_key_exists($name, $_SESSION['numbers'])){
    $_SESSION['numbers'][$name]['number'] += $number;
}
else{
    $_SESSION['numbers'][$name] = array("name"=>$name, "number"=>$number);
}