PHP-按字母顺序排序并将值分配给特定变量

第1411章

PHP初学者在这里。寻找更有效的代码。

我有一个名为的模型,Brands并且试图在视图中按字母顺序提取,排序和显示值。

例如:

品牌名称以字母A开头

  1. 品牌1
  2. Brand2 .....等

品牌名称以字母K开头

  1. 品牌1
  2. Brand2 .....等

我可以通过以下代码执行相同操作:

$ brandsTable = TableRegistry :: get('Brands');

    $brandA = $brandsTable->find('all')->where([
        'deleted =' => 0
        ])-> andWhere(['brand_name_eng LIKE :key'
        ])->bind(':key', 'A%'
        )-> orWhere(['brand_name_eng LIKE :key'
        ])->bind(':key', 'a%');

    $brandK = $brandsTable->find('all')->where([
        'deleted =' => 0
        ])-> andWhere(['brand_name_eng LIKE :key'
        ])->bind(':key', 'K%'
        )-> orWhere(['brand_name_eng LIKE :key'
        ])->bind(':key', 'k%');

    $brandS = $brandsTable->find('all')->where([
        'deleted =' => 0
        ])-> andWhere(['brand_name_eng LIKE :key'
        ])->bind(':key', 'S%'
        )-> orWhere(['brand_name_eng LIKE :key'
        ])->bind(':key', 's%');

    $brandT = $brandsTable->find('all')->where([
        'deleted =' => 0
        ])-> andWhere(['brand_name_eng LIKE :key'
        ])->bind(':key', 'T%'
        )-> orWhere(['brand_name_eng LIKE :key'
        ])->bind(':key', 't%');

    $brandN = $brandsTable->find('all')->where([
        'deleted =' => 0
        ])-> andWhere(['brand_name_eng LIKE :key'
        ])->bind(':key', 'N%'
        )-> orWhere(['brand_name_eng LIKE :key'
        ])->bind(':key', 'n%');

    $brandH = $brandsTable->find('all')->where([
        'deleted =' => 0
        ])-> andWhere(['brand_name_eng LIKE :key'
        ])->bind(':key', 'H%'
        )-> orWhere(['brand_name_eng LIKE :key'
        ])->bind(':key', 'h%');

    $brandM = $brandsTable->find('all')->where([
        'deleted =' => 0
        ])-> andWhere(['brand_name_eng LIKE :key'
        ])->bind(':key', 'M%'
        )-> orWhere(['brand_name_eng LIKE :key'
        ])->bind(':key', 'm%');

    $brandY = $brandsTable->find('all')->where([
        'deleted =' => 0
        ])-> andWhere(['brand_name_eng LIKE :key'
        ])->bind(':key', 'Y%'
        )-> orWhere(['brand_name_eng LIKE :key'
        ])->bind(':key', 'y%');

    $brandR = $brandsTable->find('all')->where([
        'deleted =' => 0
        ])-> andWhere(['brand_name_eng LIKE :key'
        ])->bind(':key', 'R%'
        )-> orWhere(['brand_name_eng LIKE :key'
        ])->bind(':key', 'r%');

    $brandW = $brandsTable->find('all')->where([
        'deleted =' => 0
        ])-> andWhere(['brand_name_eng LIKE :key'
        ])->bind(':key', 'W%'
        )-> orWhere(['brand_name_eng LIKE :key'
        ])->bind(':key', 'w%');

    $this->set('brandsA', $brandA);
    $this->set('brandsK', $brandK);
    $this->set('brandsS', $brandS);
    $this->set('brandsT', $brandT);
    $this->set('brandsN', $brandN);
    $this->set('brandsH', $brandH);
    $this->set('brandsM', $brandM);
    $this->set('brandsY', $brandY);
    $this->set('brandsR', $brandR);
    $this->set('brandsW', $brandW);

我相信这不是多次调用模型/执行查询的最有效方法。试图寻找有效的解决方案(哈希:提取/排序等),但无法获得正确的输出。感谢您的帮助。谢谢!

注意:Deleted标志用于逻辑删除。

更新: ThinTank和ndm发表评论后抱歉没有提及,因为这是一个日本网站,我正在寻找区分大小写的品牌名称

[A,E,I,O,U],[K],[S],[T],[N],[H],[M],[Y],[R],[W]

例子:我有以下品牌

adidas,Allison,Edox,Reebok,Tissot等

输出应为:品牌名称以ア[A,E,I,O,U]开头:adidas Allison Edox

品牌名称从[R]开始:锐步(Reebok)

品牌名称以タ[T]开始:天梭...依此类推,

智囊团

这是分解它的一种方法:

$listBrandsLetter = array('A', 'K', 'S', 'T', 'N', 'H', 'M', 'Y', 'R', 'W');

$brandsTable = TableRegistry::get('Brands');

foreach($listBrandsLetter as $letter)
{
    $currentBrand = $brandsTable->find('all')->where([
                        'deleted =' => 0
                        ])-> andWhere(['brand_name_eng LIKE :key'
                        ])->bind(':key', $letter.'%'
                        )-> orWhere(['brand_name_eng LIKE :key'
                        ])->bind(':key', strtolower($letter).'%');

    $this->set('brands'.$letter, $currentBrand);
}

如果您的目标是减少由于性能问题而导致的查询数量,请通知我们。如果性能还可以,只需考虑因素

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP-按字母顺序排序并将值分配给特定变量

来自分类Dev

验证 PHP 数组中的值并将结果重新分配给变量

来自分类Dev

将PHP变量分配给HTML单选按钮值

来自分类Dev

将数组值分配给变量PHP

来自分类Dev

将“ div id”值分配给变量php

来自分类Dev

PHP Heredoc分配给变量错误

来自分类Dev

PHP的根路径分配给变量

来自分类Dev

PHP按特定顺序排序

来自分类Dev

PHP:按字母顺序对数组排序

来自分类Dev

PHP:按字母顺序对数组排序

来自分类Dev

PHP:按字母顺序对 ZIP 进行排序

来自分类Dev

PHP遍历数组并将其分配给特定的迭代数

来自分类Dev

PHP:将 AJAX 响应值分配给 PHP 变量

来自分类Dev

如何在不使用表单操作的情况下获取文本框值并将其分配给PHP变量?

来自分类Dev

将PHP变量分配给PHP数组

来自分类Dev

PHP:遍历数组并将客户分配给用户

来自分类Dev

如何使用$ _SERVER变量中的路径,对其进行修改并将其分配给PHP中的某个变量?

来自分类Dev

将Oracle SQL语句中的值分配给PHP变量

来自分类Dev

将JSON数组中的值分配给PHP中的变量

来自分类Dev

如何在PHP中将变量值分配给单选按钮的值

来自分类Dev

将MySQL数据库值分配给PHP变量

来自分类Dev

如何将Ajax数据值分配给PHP变量

来自分类Dev

如何将值从vardump输出分配给php中的变量?

来自分类Dev

如何将php变量分配给JS变量

来自分类Dev

如何将php变量分配给javascript变量

来自分类Dev

尝试刷新分配给PHP变量的JavaScript变量

来自分类Dev

将jquery变量分配给php变量

来自分类Dev

将php变量分配给sessionStorage变量

来自分类Dev

Laravel Blades - 将 JS 变量分配给 PHP 变量

Related 相关文章

热门标签

归档