-2
在PHP中:如何从数组中删除/删除密钥?PHP:如何从数组中删除/删除密钥
在我的PHP脚本中,我处理输入表单的值。如果某个值不符合某个条件,则创建一个数组来存储该值。稍后在脚本中,如果值满足第二个条件,那么我想从数组中除去键和值。我想删除键的原因除了它保存的值之外,是因为如果数组中有任何/另一个键,那么我会将该数组传递给一个函数,该函数将处理该数组中的每个键和值。
我试过unset()
这对我不起作用,因为它只是取消了密钥的值,而不是密钥本身。
我想创建另一个数组,只包含不符合第二个条件的值,但我不想这样做,如果我可以删除数组中的特定键。
这里是我的脚本的一个片段:
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");
更多具体的例子。 – fico7489
我想你错了。 unset()破坏数组元素,这意味着没有键或值。 – xReprisal
@ArekGorecki。你是对的,我误解了unset()的行为,因此滥用了它。问题解决了 – Arya