Hash是一個很好用的資料結構,很多程式語言多可以看到它的存在,Hash的結構是由Key-Value所組成的資料,設計者只要根據Key值就可以取得資料,是一個相當方便好用的資料結構。

Perl Hash(Associative Array)

#Perl Hash程式
#定義一個Hash變數%dictionary
#=>前面是key
#=>後面是value

%dictionary = (
    "我"=>"N",
    "吃"=>"V", 
    "頻果"=>"N"  
);

#利用for each 印出Hash中的所有資料
#keys()這個是內建函式,找出Hash所有的key並回傳一個array
#利用foreach將key與value列印出來

print "example1\n";
foreach $key (keys(%dictionary))
{
   print $key." ====> ".$dictionary{$key}."\n"; 

#根據key值找value
print "\nexample2\n";
print $dictionary{"我"};

#利用while迴圈印出Hash中的所有資料
print "\n\nexample3\n";
while(($mykey, $myvalue)=each(%dictionary))
{
   print $mykey." ====> ".$myvalue."\n";
 

#印出所有的key值
print "\nexample4\n";
foreach $this_key (keys(%dictionary))
{
   print $this_key."," 

#印出所有的value值
print "\n\nexample5\n";
foreach $this_value (values(%dictionary))
{
   print $this_value."," 
}

 

 

PHP中的陣列與Hash

data[7]=3;
在php中有兩個意義:

  1. 將data這個陣列的第7個索引值設成3
將data這個Hash的key為7的值設成3

在php語言中陣列型態其實就是hash,因為陣列是hash的一個子集,所以php的陣列就是用hash實作而成。陣列與hash到底差在哪裡呢?其實就差在陣列是使用數字當作index值,而hash可以使用數字,字串來當作index值。hash的index又被稱為key,因為hash是由一堆key與value所組成的資料結構。

php的陣列範例:
$data[0]="data1";
如果要將data這個陣列索引值的1,5,8設成0:
$data[1]=0;  $data[5]=0;   $data[8]=0;
php中有一個內建函式叫array()可以幫助我們建立陣列
例如:$data=array(1=>0,5=>0,8=>0);
key=>value其中的key就是陣列的索引值

 

 

    全站熱搜

    CJY0503 發表在 痞客邦 留言(0) 人氣()