统计用户注册表邮箱类型数量


模型层获取数据

/** * 获取数据 */

public function getInfos(){

  return $this->find()->asArray()->all();

}

public function actionCounts(){

  $model = new User; //获取所有数据

  $arr = $model->getInfos();

  //var_dump($arr);die;

  $data = array();

  foreach ($arr as $key => $val) {

    $str = substr($val['u_email'], strpos($val['u_email'], '@'));//, 20

    $str1 = substr($str, 1);

    //echo $str1;

    $data[$str1][$key] = $str1;

  }

  //获取数量

  foreach ($data as $key => $val) {

    echo $key.'的邮箱'.count($val).'个';

  }

  //var_dump($data);die;

}

另一种方法

use frontendmodelsUser;

public function actionCons(){
        $arr = User::find()->select('u_email')->column();
        $data = array();
        foreach ($arr as $key => $val) {
            $pos = strpos($val, '@');
            $str = substr($val, $pos+1);
            $data[] = $str;
        }
        $count = array_count_values($data);
        //var_dump($count);die;
        foreach ($count as $key => $val) {
            echo $key.'的邮箱'.count($val).'个<br>';
        }
    }

原文地址:https://www.cnblogs.com/jhy-ocean/p/5403550.html