Assoc.数组,获取具有特殊id的元素


Assoc. Array, get Element with special id

我有关联数组alldept。我现在想要的'name'元素从数组与id例如。' 1 ',

如何访问id并输出'name'?

id保存在$result[$i]['abteilung']

非常感谢!

$manager = $this->getDoctrine()
                ->getManager('olddb')
                ->getRepository('ChrisOldUserBundle:BpDepartment');
$dept = $manager->findBy([],['name' => 'ASC']);
$alldept = array();
foreach ($dept as $singledpt){
    $alldept[] = array("id" => $singledpt->getId(), 
                       "name" => $singledpt->getName()
                      );
 }

当您自己构建这个数组时,以一种以后可用的方式构建它似乎是明智的。

那么为什么不像这样构建数组呢

$manager = $this->getDoctrine()
                ->getManager('olddb')
                ->getRepository('ChrisOldUserBundle:BpDepartment');
$dept = $manager->findBy([],['name' => 'ASC']);
$alldept = array();
foreach ($dept as $singledpt) {
    $alldept[ $singledpt->getId() ] = $singledpt->getName();
}

现在如果你知道你想要dept = 1的名字你只需输入

echo $alldept[1];

我的建议是保持id为键,name为值:

$manager = $this->getDoctrine()
                ->getManager('olddb')
                ->getRepository('ChrisOldUserBundle:BpDepartment');
$dept = $manager->findBy([],['name' => 'ASC']);
$alldept = array();
foreach ($dept as $singledpt){
    $alldept[$singledpt->getId()] = $singledpt->getName();
 }

注意:我假设getId将是唯一的

然后获取name,你可以简单地输入$alldept[$id]

这可能不是答案,只是一种选择。你可以避免循环