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

时间:2016-03-01 09:55:00

标签: php regex

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

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。 你能帮我解决一下吗?谢谢

1 个答案:

答案 0 :(得分:0)

当我理解它是正确的时,你需要在命令行中提供参数检查。

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

非常强大,你可以安全!