我在symfony中编写了一个API调用,以从数据库返回所有数组数据。
public function getData()
{
$data = [];
$users = $this->getUserRepository()->findAll();
foreach ($users as $user){
array_push($data, $user->getId());
array_push($data, $user->getEmail());
array_push($data, $user->getUsername());
}
return $data;
}
我是这样的
1,first @ mail.com,userOne,2,second @ gamail.com,userTwo
但是我想像这样在新行中对每组数据进行排序
1,first @ mail.com,userOne,
2,second @ gamail.com,userTwo
答案 0 :(得分:1)
另一种方法是:
public function getData()
{
$users = $this->getUserRepository()->findAll();
foreach ($users as $user) {
$data[] = [$user->getId(), $user->getEmail(),$user->getUsername()];
}
return $data;
}
这消除了函数调用array_push()
的开销。
答案 1 :(得分:0)
您正在$data
中为数据库返回的每一行创建3个事件,而不是为每个返回的行加载一个事件并在其中放置一个数组。
public function getData()
{
$data = [];
$users = $this->getUserRepository()->findAll();
foreach ($users as $user){
array_push($data, [$user->getId(), $user->getEmail(),$user->getUsername()]);
}
return $data;
}
答案 2 :(得分:0)
这应该有效
public function getData()
{
$data = [];
$users = $this->getUserRepository()->findAll();
foreach ($users as $user){
$data[$user->getId()][] = $user->getId();
$data[$user->getId()][] = $user->getEmail();
$data[$user->getId()][] = $user->getUsername();
}
return $data;
}
答案 3 :(得分:0)
我认为以前的所有答案都不是很好。您不需要其他的循环,只需创建查询即可。 (并返回所需的水分)
例如
add
将其放置在用户存储库中,然后调用它,而不是findAll方法。
答案 4 :(得分:0)
谢谢大家的帮助,但我是这样做的,对我有用。
public function getData()
{
$results = $this->getUserRepository()->findAll();
$rows = [];
$rows[] = array(
"id",
"username",
"email"
);
foreach ($results as $row) {
$rows[] = array(
$row->getId(),
$row->getUsername(),
$row->getEmail()
);
}
return $rows;
}
答案 5 :(得分:-1)
$users = $this->getUserRepository()->findAll();
$i=0;
foreach ($users as $user){
$data[$i][] = $user->getId();
$data[$i][] = $user->getEmail();
$data[$i][] = $user->getUsername();
$i++;
}