Exakat\Analyzer\Arrays\MultipleIdenticalKeys::analyze PHP Method

analyze() public method

public analyze ( )
    public function analyze()
    {
        $this->atomFunctionIs('\\array')->raw('where(
    __.sideEffect{ counts = [:]; }
      .out("ARGUMENTS").out("ARGUMENT").hasLabel("Keyvalue").out("KEY")
      .hasLabel("String", "Integer", "Real", "Boolean", "Null", "Staticconstant").where(__.out("CONCAT").count().is(eq(0)))
      .sideEffect{ 
            if ("noDelimiter" in it.get().keys() ) { k = it.get().value("noDelimiter"); } 
            else if (it.get().label() == "Real" ) { k = Float.parseFloat(it.get().value("code")).round(); } 
            else if (it.get().label() == "Staticconstant" ) { k = it.get().value("fullcode"); } 
            else if (it.get().label() == "Null" ) { k = 0; } 
            else if (it.get().label() == "Boolean" ) { 
                if (it.get().value("fullcode").toLowerCase() in ["\\false", "false"] ) { k = 0; } else { k = 1; } 
            } else { k = it.get().value("code").toInteger(); }
            if (counts[k] == null) { counts[k] = 1; } else { counts[k]++; }
        }
        .map{ counts.findAll{it.value > 1}; }.unfold().count().is(neq(0))
)')->back('first');
        $this->prepareQuery();
    }
MultipleIdenticalKeys