/** * @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')); }
/** * @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; } } }