【问题标题】:PHP: how to delete/remove a key from an arrayPHP:如何从数组中删除/删除键
【发布时间】:2015-10-25 18:36:25
【问题描述】:

在 PHP 中:如何从数组中删除/移除键?

在我的 PHP 脚本中,我处理输入表单的值。如果一个值不满足某个条件,那么我创建一个数组来存储该值。稍后在脚本中,如果值满足第二个条件,那么我想从数组中删除键和值。除了它持有的值之外,我想删除键的原因是因为如果数组中有任何/另一个键,那么我会将数组传递给一个函数,该函数将处理该数组中的每个键和值.

我试过unset() 对我不起作用,因为它只会取消设置键的值,而不是键本身。

我曾考虑创建另一个仅包含不满足第二个条件的值的数组,但如果我可以删除数组中的特定键,我不想这样做。

这是我的脚本的 sn-p:

foreach($_POST as $field => $value)
{   
    if($field == "HiddenConditionsEditProcess")
    {
        if(is_numeric($value))
        {
            $GoodData[$field] = $value;
        }
    }
    elseif(
    ($field == "NameSanskrit")
    ||
    ($field == "NameWestern"))
    {
        if(!(preg_match("[[a-zA-z +'-]+]",$value)))
        {
            $ErrorArray[] = $field;

            $GoodData[$field] = strip_tags(trim($value));
        }
        else
        {
            $GoodData[$field] = mysqli_real_escape_string($mysqli, strip_tags(trim($value)));
        }
    }
}

if(
(isset($ErrorArray['NameSanskrit']))
&&
(!(isset($ErrorArray['NameWestern']))))
{
    unset($ErrorArray['NameSanskrit']);
}

DisplayError($GoodData, $ErrorArray, "ConditionsEdit.php");

【问题讨论】:

  • 详细解释具体例子。
  • 我认为你弄错了。 unset() 销毁数组元素,这意味着没有键或值。
  • @ArekGorecki。你是对的,我误解了 unset() 的行为,因此误用了它。问题解决了

标签: php arrays key


【解决方案1】:

unset() - 完全按照您的预期去做,即删除整个元素、键和值。

<?php
function foo() 
{
    unset($GLOBALS['bar']);
}

$bar = "something";
foo();
?>

根据您的脚本,$ErrorArray 永远不会获得您尝试取消设置的键“NameSanskrit”。因为您正在执行此操作 $ErrorArray[]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-03
    • 1970-01-01
    • 1970-01-01
    • 2012-11-07
    • 2016-04-18
    • 1970-01-01
    相关资源
    最近更新 更多