PHP:數組操作函數array_count_values()的實現

    PHP作爲一門弱類型的腳本語言,其變量無需聲明,即用即得,其數組更是與其他強類型語言相差巨大,比如PHP數組中的關聯鍵和數值鍵,其中最有趣的莫過於關聯鍵了,這是在C++或JAVA中無法見到的,而且PHP還提供諸多強大的數組操作函數,比如

  array_values()//可以剝離數組中的關聯鍵和數值鍵,或得有其元素的值所組成的數組

  array_keys()//獲得所有的關聯鍵和數值鍵

 利用這兩個函數就可以非常方便簡單的實現

 array_count_values()函數

 思路就是先用array_values()或得元素值數組

 再將元素值數組作爲關聯鍵新建一個數組(當然得先檢查該關聯鍵是否存在)

 然後再用foreach循環原來的數組將元素值作爲新數組的關聯鍵操作即可

 可能表達的不是很清楚,直接上代碼j_0007.gif

 

<?php
//統計數組中數據出現的頻率
	function  mycount($arr)
	{
		if(is_array($arr))
		{
			$values = array_values($arr); //取得數組中數值
			
			$count = array();//初始化數組
			
			
			foreach ($values as $value)
			{
				if(!array_key_exists($value,$count))
				{
					//如果鍵不存在則創建關聯鍵
					$temp = array($value=>0);
					//連接兩個數組實際上相當於往裏面添加元素
					$count=array_merge($count,$temp);
					
				}
			}
			foreach ($values as $key)
			{
				$count[$key]++;
			}
			return $count;
		}
		return  $arr;

	}
	$a = array("ABC","FUCKYOU","ABC","Dady","PO","Dady","LIN","ABC","LIN","FUCKYOU");
	$a = mycount($a);
	print_r($a);
	
?>

運行結果

Array (    [ABC] => 3    [FUCKYOU] => 2    [Dady] => 2    [PO] => 1    [LIN] => 2 )

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章