【问题标题】:divide large string into smaller chunks and count each chunk php?将大字符串分成较小的块并计算每个块 php?
【发布时间】:2014-09-11 04:28:09
【问题描述】:

我想将大字符串分成更小的块并计算每个块在数据库中的出现次数

示例:

###Windows###Apple###Android

现在我想在“回答”所有数据库列中计算 Windows、Apple、Android 的出现次数。

答案栏中的字符串可能不会一直固定,这取决于答案!

【问题讨论】:

  • 有没有可靠的方法将文本分成块?就像每个单词都用一些###分隔?
  • 看起来你应该规范化数据

标签: php mysql codeigniter symfony1


【解决方案1】:

你可以用这种效率很低的方法来做到这一点:

select v.val, count(*)
from (select 'Windows' as val union all
      select 'Apple' union all
      select 'Android'
     ) v join
     table t
     on t.answer like concat('%', v.val, '%')
group by v.val;

【讨论】:

  • 感谢 Gordon !但答案列中的值可能不会一直固定,这取决于答案!
【解决方案2】:

我没有清楚地理解你的问题,但如果我是正确的,你想要这样的东西。

首先您必须查询数据库以获取答案列,然后您必须将答案放入字符串中。然后使用substr_count。类似这样的东西。

<?php
$text = '###Windows###Apple###Android';
echo substr_count($text, 'Windows'); 
?>

希望这就是你正在寻找的。​​p>

【讨论】:

    猜你喜欢
    • 2021-06-24
    • 2015-02-07
    • 2020-02-05
    • 1970-01-01
    • 1970-01-01
    • 2012-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多