PHP-使用数组行

时间:2018-07-31 14:19:49

标签: php api symfony

我在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

6 个答案:

答案 0 :(得分:1)

另一种方法是:

public function getData()
{
    $users = $this->getUserRepository()->findAll();
    foreach ($users as $user) {
        $data[] = [$user->getId(), $user->getEmail(),$user->getUsername()];
    }

    return $data;
}

这消除了函数调用array_push()的开销。

来源:http://php.net/manual/en/function.array-push.php

答案 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++;

}