#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;
    }       

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM