【问题标题】:To check if an element already exists in the array and then if it does exist, delete it检查一个元素是否已经存在于数组中,如果存在,删除它
【发布时间】:2016-07-16 12:37:00
【问题描述】:

参数取自像这样file.php?item=xyz的url 我有一个数组$_SESSION['arr']

现在我想检查xyz 是否存在于$_SESSION['arr'] 中,如果存在则将其删除。

最后我将结果发送到调用 JQuery 函数
echo json_encode($_SESSION['arr']);

编辑:如果元素不存在,则将其添加到数组中。

提前致谢!

【问题讨论】:

  • 使用in_array()函数。

标签: php jquery arrays session


【解决方案1】:

使用下面的代码。

if(isset($_GET['item']) && $_GET['item'] == "xyz")
{
  if(in_array($_GET['item'],$_SESSION['arr']))
  {
     //Delete it
  }
}

【讨论】:

  • 请提供您对答案的反馈。 @Anusha
  • 我之前尝试过in_array()的方法,但是没有成功:(
  • 请详细解释您的问题在哪里对您不起作用,因为我确信根据您的查询它是正确的。 @Anusha
【解决方案2】:

这应该对你有用:)

foreach ($_SESSION['arr'] as $value)
{
 //converting to lowercase
 $value= strtolower($value)
 if($value == "xyz")
 {
   //removing $value from $_SESSION['arr'] 
   unset($_SESSION['arr'][$value]);
 }
 else
 {
  //adding value to array
  array_push($_SESSION['arr'], "xzy");
 }
}

【讨论】:

  • 嘿,这行得通!谢谢,如果数组中尚不存在元素,您能否告诉如何添加元素。我在问题的编辑部分提到过。
【解决方案3】:
if(isset($_GET['item']))
{
 if(in_array($_GET['item'],$_SESSION['arr']))
  { 
   $pos = array_search($_GET['item'], $_SESSION['arr']);
   unset($_SESSION['arr'][$pos]);// deletes 
  }

未经测试,但逻辑是这样的。希望有帮助:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-22
    • 1970-01-01
    • 2017-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-14
    相关资源
    最近更新 更多