php 从教义中获取多维阵法

fcwjkofz  于 2022-12-21  发布在  PHP
关注(0)|答案(2)|浏览(105)

我有这样一张table:
| id //未索引|原点|
| - ------|- ------|
| 1个|德国|
| 1个|美国|
| 第二章|美国|
| 第二章||
我想得到每个实体女巫有一个起源(!=''),但在一个多维数组,按id排序,看起来像这样:

[
 [
  {
   'id': '1',
   'origin': 'germany'
  },
  {
   'id': '1',
   'origin': 'usa'
  },
 ],
 [
  {
   'id': '2',
   'origin': 'usa'
  }
 ]
]

这对于查询来说是可能吗?还是必须在PHP中执行?

yhqotfr8

yhqotfr81#

对于e.x.,您可以像这样删除空字段。

<pre><?php

// Source before
$before = array();
$before[] = array("1" => "germany");
$before[] = array("1" => "usa");
$before[] = array("2" => "usa");
$before[] = array("2" => "");

print_r($before);

// Source after
$after = array();
foreach ($before as $key => $value) {
    // Only add value, if aviable
    foreach ($value as $key2 => $value2) {
        if (!empty($value2)) {
            $after[] = array($key2,$value2);
        }
    }
}
print_r($after);

结果:

Array
(
    [0] => Array
        (
            [1] => germany
        )

    [1] => Array
        (
            [1] => usa
        )

    [2] => Array
        (
            [2] => usa
        )

    [3] => Array
        (
            [2] => 
        )

)
Array
(
    [0] => Array
        (
            [0] => 1
            [1] => germany
        )

    [1] => Array
        (
            [0] => 1
            [1] => usa
        )

    [2] => Array
        (
            [0] => 2
            [1] => usa
        )

)
mrwjdhj3

mrwjdhj32#

您可以在存储库中使用QueryBuilder来完成此操作。

$qb = $this->createQueryBuilder('your_alias')
            ->select('your_alias.id, your_alias.origin');

        $qb
            ->where('your_alias.origin IS NOT NULL')
            ->orderBy('your_alias.id');

        return $qb->getQuery()->getResult();

此致,

相关问题