Php 原则2获取对id=>;价值
你好,我有一个简短的问题 我使用的是原则2,我需要从特定的表中获取成对的数组。 例如,我有一个表“Category”,表中有列('id'、'name'、'description'、…),我希望获得数组格式的所有行(Category.id=>Category.name),如下所示:Php 原则2获取对id=>;价值,php,doctrine-orm,Php,Doctrine Orm,你好,我有一个简短的问题 我使用的是原则2,我需要从特定的表中获取成对的数组。 例如,我有一个表“Category”,表中有列('id'、'name'、'description'、…),我希望获得数组格式的所有行(Category.id=>Category.name),如下所示: array( 7 => 'News', 8 => 'Sport', 11 => 'Work' ) (在本例中,我只有3个ID为7、8、11的类别) 有什么简单快捷的方法吗?试试这个
array(
7 => 'News',
8 => 'Sport',
11 => 'Work'
)
(在本例中,我只有3个ID为7、8、11的类别)
有什么简单快捷的方法吗?试试这个
$result = $query->getResult(Query::HYDRATE_ARRAY);
或
更多信息。看
将categoryId
转换为数组键,将categoryName
转换为值
$newArr=[];
foreach($result as $cat){
$newArr[] = [$cat['id'] => $cat['name']];
}
以数组形式获取结果
$result = $query->getResult(Query::HYDRATE_ARRAY);
然后,可以使用for each修改结果,如下所示:
$modifiedResults = array();
foreach ($results as $row)
{
array_push($modifiedResults, array($row['id'] => $row['names']));
}
我认为,在这种情况下,你应该写你自己的答案,或者说,这比以前的答案要简单得多。 您可以通过使用PDO常量和Doctrine的数据库访问层(DBAL)来实现这一点 从控制器:
$dbal = $this->getDoctrine()->getConnection();
$idsAndNames = $dbal->executeQuery('SELECT id, name FROM Categories')
->fetchAll(\PDO::FETCH_KEY_PAIR);
这将根据您的问题生成数组。如果使用生成器,则可以使用“Query::hydrome\u array”。这将以数组的形式返回对象。可能是重复的,谢谢回答。但是它返回类似数组的数组(0=>array('id'=>7,'name'=>'News'),…),而不是数组(7=>'News'),…)。您假设他们使用的是SQL,而他们可能不使用。你的回答并没有提供一种通过条令来实现这一点的方法,而是通过PDO来实现,PDO并没有回答OP的问题。此外,OP甚至可能没有控制器之类的东西。
$dbal = $this->getDoctrine()->getConnection();
$idsAndNames = $dbal->executeQuery('SELECT id, name FROM Categories')
->fetchAll(\PDO::FETCH_KEY_PAIR);