• #PHP 数组添加元素、统计数组相同元素个数、改变数组key值~_~


     一、数组添加元素

    1、定义和用法:

         array_push() 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。

    2、语法:

         array_push(array,value1,value2...)    

         array指数组,value指添加的值

    3、举例:

         <?php

         $a=array("red","green");

         array_push($a,"blue","yellow"); 

         print_r($a); ?>

         输出结果:Array ( [0] => red [1] => green [2] => blue [3] => yellow )

    二、统计数组相同元素个数

    1、定义和用法:

         array_count_values()返回一个数组,该数组用数组中的值作为键名,该键值是在数组中出现的次数。

    2、语法:

         array_count_values(array)

         array指数组

    3、举例:

         <?php
         $array = array(1, "hello", 1, "world", "hello");
         print_r(array_count_values($array));?>

         输出结果:Array( [1] => 2  [hello] => 2  [world] => 1)

    三、改变数组key值

    1、举例:

         数组$datas的形式如下:

        

         数组$ary2的形式如下:

         

         将数组$ary2的key值赋给数组$datas的key值,代码如下:

         foreach ($datas as $key => $value){
                $keys = $value->name; //取出要作为key的字段
                $datas[$value->name] = $value; //赋值
                unset($datas[$key]);//释放原来的key
          }

          print_r($datas);exit;

          输出结果:

         

    对于像我这样的PHP小白来说,这些很实用的数组函数还是很值得积累一下。以下代码是在二次开发zentao(禅道)php框架编写的,其中就涉及到以上的三个知识点。

    public function getDataOftasksPerAssignedTo()
    {
       $datas = $this->dao->select('t1.assignedTo AS name,t1.finishedBy,t1.closedBy')
                   ->from(TABLE_TASK)->alias('t1')
                   ->where($this->reportCondition())
                   ->fetchAll();
            
            if(!$datas) return array();
            if(!isset($this->users)) $this->users = $this->loadModel('user')->getPairs('noletter');
            $ary1 = array();
            foreach($datas as $account => $data) 
            {
                if ($data->name == 'closed'){
                    if (!empty($data->finishedBy)){
                        $data->name = $data->finishedBy;
                    }else if(empty($data->finishedBy) && !empty($data->closedBy)){
                        $data->name = $data->closedBy;
                    }
                }
                Array_push($ary1, $data->name);
            }
            $ary2 = array_count_values($ary1);
            foreach ($datas as $key => $value){
                $value->value = $ary2[$value->name];
                $keys = $value->name; //取出要作为key的字段
                $datas[$value->name] = $value; //赋值
                unset($datas[$key]);
                if(isset($this->users[$value->name]))  $value->name = $this->users[$value->name];
            }
            return $datas;
        }       
    只要路是对的,就不怕路远
  • 相关阅读:
    【程序员的实用工具推荐】 Mac 效率神器 Alfred
    【白话科普】《逆局》最终 boss 隐藏自己的方式是?
    自媒体时代的贤内助——AI 视频云
    MAC 连接 本机 mysql:MySQL said: Authentication plugin 'caching_sha2_password'
    普通微信支付最好用的库
    unicloud开发公众号
    关于微信unionid
    vueelementadmin二次开发 1
    vueelementadmin二次开发 2
    云桌面
  • 原文地址:https://www.cnblogs.com/klmei/p/6485861.html
Copyright © 2020-2023  润新知