PHP 如何检查数组中的键是否唯一


php how to check if key in array is unique

我有这个函数来解析参数:

function arguments($argv) {
    $_ARG = array();
    foreach ($argv as $arg) {
        if (ereg('--([^=]+)=(.*)', $arg, $reg)) {
            $_ARG[$reg[1]] = $reg[2];
        } elseif (ereg('--([a-zA-Z0-0'-]*)', $arg, $reg)) {
            $_ARG[$reg[1]] = 'true';
        } elseif (ereg('-([a-zA-Z0-9])', $arg, $reg)) {
            $_ARG[$reg[1]] = 'true';
        } elseif (ereg('([a-zA-Z0-0'-]*)', $arg, $reg)) {
            $_ARG[$reg[1]] = 'true';
        }
    }
    return $_ARG;
}

var_dump()之后,我得到这样的东西:

array(4) {
  ["xqr"]=>
  string(4) "true"
  ["query"]=>
  string(60) "Some string..."
 ["input"]=>
 string(12) "input03.txt"
 ["n"]=>
 string(4) "true"
}

我的问题是,我无法在解析的参数中检测到重复项。例如php name.php --query='Some string...' --input=input03.txt -n -nphp name.php --query='Some string...' --input=input03.txt n n。两个输入都无效,只能有一个-n并且不能n。请你能帮我如何处理它吗?谢谢

当我理解正确时,您需要它用于命令行中提供的参数检查。

我不建议再次编写/发明自己的函数。使用 getopt 函数。

它非常强大,您可以安全时间!