如何在php

时间:2019-01-17 19:57:34

标签: php

假设我在 PHP

中具有以下代码
<?php 
$thousands_likes = 1100;
$millions_likes = 2100000;

?>

如何将其转换为类似的内容

1.1k赞或2.1M赞。

2 个答案:

答案 0 :(得分:2)

也许尝试为此类任务创建实用程序功能?您可以使用普通数学来计算后缀:

function human_readable_likes($likes): string
{
    $i = \floor(\log($likes, 1000));
    return \round($likes / 1000 ** $i, [0, 1, 2, 2, 2][$i]).' '.['', 'K', 'M', 'G', 'T'][$i];
}

但是对于您的用例,这可能太多了。

答案 1 :(得分:1)

基于成千上万种事物的简单操作:

class Group {
  constructor() {
    this.members = [];
  }

  add(member) {
    if (this.has(member)) return;
    this.members.push(member);
  }

  delete(member) {
    if (!this.has(member)) return;
    this.members.splice(this.members.indexOf(member), 1);
  }

  has(member) {
    return this.members.indexOf(member) !== -1
  }

  static from(iterable) {
    const group = new Group();
    for (const element of iterable) {
      group.add(element);
    }

    return group;
  }

  [Symbol.iterator]() {
    let current = 0;
    let last = this.members.length - 1;
    return {
      next: () => {
        if (current <= last) {
          return {
            done: false,
            value: this.members[current++]
          }
        } else return { done:true }
      }
    }
  }
}

for (let value of Group.from(["a", "b", "c"])) {
  console.log(value);
}