/**
  * @author Andreas Glaser
  */
 public function testGetByValue()
 {
     $testArray = ['k1' => 'v1', 'k2' => 'v2', 'k3' => 'duplicate', 'k4' => 'duplicate', 'k5' => 0, 'k6' => '0', 0 => 'test'];
     $this->assertEquals('k1', ArrayHelper::getKeyByValue($testArray, 'v1'));
     $this->assertEquals('k2', ArrayHelper::getKeyByValue($testArray, 'v2'));
     $this->assertEquals('k3', ArrayHelper::getKeyByValue($testArray, 'duplicate'));
     $this->assertEquals(null, ArrayHelper::getKeyByValue($testArray, 'invalid'));
     $this->assertEquals('k6', ArrayHelper::getKeyByValue($testArray, '0', null, true));
     $this->assertEquals('k5', ArrayHelper::getKeyByValue($testArray, '0', null, false));
     $this->assertEquals('something', ArrayHelper::getKeyByValue($testArray, 'invalid', 'something'));
     $this->assertEquals('0', ArrayHelper::getKeyByValue($testArray, 'test'));
 }
Exemplo n.º 2
0
 /**
  * @author Andreas Glaser
  */
 protected function buildPathToAliasMap()
 {
     $rootAlias = ArrayHelper::getFirstValue($this->qb->getRootAliases());
     $this->aliasMap[$rootAlias] = $rootAlias;
     if (array_key_exists($rootAlias, $this->qb->getDQLParts()['join'])) {
         /** @var Expr\Join $part */
         foreach ($this->qb->getDQLParts()['join'][$rootAlias] as $part) {
             $alias = $part->getAlias();
             $join = $part->getJoin();
             $path = $alias;
             $pieces = explode('.', $join);
             if ($parentAlias = ArrayHelper::getKeyByValue($this->aliasMap, $pieces[0])) {
                 $path = $parentAlias . '.' . $alias;
             }
             $this->aliasMap[$path] = $alias;
         }
     }
 }