php中數值數組、關聯陣列、多維陣列用法

來源:互聯網
上載者:User

 


數值數組
數值數組儲存的每個元素都帶有一個數字 ID 鍵。

可以使用不同的方法來建立數值數組:

例子 1
在這個例子中,會自動分配 ID 鍵:

 代碼如下 複製代碼

$names = array("Peter","Quagmire","Joe");

例子 2
在這個例子中,我們人工分配的 ID 鍵:

 代碼如下 複製代碼

$names[0] = "Peter";
$names[1] = "Quagmire";
$names[2] = "Joe";可以在指令碼中使用這些 ID 鍵:

<?php

$names[0] = "Peter";
$names[1] = "Quagmire";
$names[2] = "Joe";

echo $names[1] . " and " . $names[2] . " are ". $names[0] . "'s neighbors";
?>

數組排序

(1)sort(array $array[,int sorttype])
 array 表示一個數組
 <TABLE class=dataintable><TBODY><TR><TD>      sorttype 取值:</TD><TD><P>           SORT_REGULAR - 預設。以它們原來的類型進行處理(不改變類型)。 </P><P>           SORT_NUMERIC - 把值作為數字來處理 </P><P>           SORT_STRING - 把值作為字串來處理 </P><P>            SORT_LOCALE_STRING - 把值作為字串來處理,基於本地設定<SUP style="FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif">*</SUP>。 </P></TD></TR></TBODY></TABLE>
 (2)bool rsort(array $array[,sorttype])函數    逆向排序(值逆向)
 sorttype  同上
 (3)bool shuffle()函數    隨機排序
 (4)array array_reverse (array $array[,bool preserve_keys])  反向排列
 preserve_keys 為true時 保留原來的鍵名
 (5)array array_merge()合并數組
 (6)array array_slice(array $array,int offset[,int length[,boolpreserve_keys ])
 offset非負,這array中的位移變數從此開始,為負時從末端開始
 length為正時,則表示序列中有很多單元,為負時表示從末端開始第幾個數處結束,若省略則從offset開始一直到最後
 boolpreserve_keys  同上

數組迴圈輸出

 代碼如下 複製代碼
<PRE class="brush:php; toolbar: true; auto-links: true;"><pre>
<?php
$shuzu=array('a'=>"wo",'b'=>"ni",'c'=>"ta",'d'=>"php",'e'=>"mysql");
echo "使用foreach函數遍曆數組";
echo "<br/>$nbsp;<br/>";
foreach($shuzu as $key=>$value)
{
echo "$key 代表: $value";
echo "<br/>$nbsp;<br/>";
}
?>
</pre></PRE>

 

關聯陣列

關聯陣列,它的每個 ID 鍵都關聯一個值。
在儲存有關具體命名的值的資料時,使用數值數組不是最好的做法。
通過關聯陣列,我們可以把值作為鍵,並向它們賦值。
例子 1
在本例中,我們使用一個數組把年齡分配給不同的人:

 代碼如下 複製代碼
$ages = array("Peter"=>32, "Quagmire"=>30, "Joe"=>34);

例子 2
本例與例子 1 相同,不過展示了另一種建立數組的方法:

 代碼如下 複製代碼

$ages['Peter'] = "32";
$ages['Quagmire'] = "30";
$ages['Joe'] = "34";可以在指令碼中使用 ID 鍵:
<?php

$ages['Peter'] = "32";
$ages['Quagmire'] = "30";
$ages['Joe'] = "34";

echo "Peter is " . $ages['Peter'] . " years old.";
?>以上指令碼的輸出:
Peter is 32 years old.


關聯陣列判斷為空白的代碼,然後我們詳細講講關於資料空的處理。

 代碼如下 複製代碼
<?php教程
    $array = array(0);
    if(empty($array)){
        echo "我空了n";
    }else{
        echo "我不空啊n";
    }
    $array['array']='我是數組';
    print_r($array);
    $array['array1']='我是數組1';
    print_r($array);
    unset($array['array1']);
    print_r($array);
?>

更多詳細內容請查看:http://www.111cn.net/phper/php/39841.htm

遍曆

遍曆使用者列表的時候,只需直接用 isset 查詢那個使用者名稱是否存在即可。

PHP 版代碼:

 代碼如下 複製代碼

<?php
$arrayHash = array();
foreach($arrayN as $nameN) {
   // 本行執行了 N 次。
   $arrayHash[$nameN] = 1;
}
 

foreach($arrayM as $keyM => $nameM) {
   if (isset($arrayHash[$nameM])) {
   // 本行執行了 M 次!
   unset($arrayM[$keyM]);
   }
}
return $arrayM;
?>

多維

數組

在多維陣列中,主數組中的每個元素也是一個數組。在子數組中的每個元素也可以是數組,以此類推。
例子 1
在本例中,我們建立了一個帶有自動分配的 ID 鍵的多維陣列:

 代碼如下 複製代碼
$families = array
(
  "Griffin"=>array
  (
  "Peter",
  "Lois",
  "Megan"
  ),
  "Quagmire"=>array
  (
  "Glenn"
  ),
  "Brown"=>array
  (
  "Cleveland",
  "Loretta",
  "Junior"
  )
);如果輸出這個數組的話,應該類似這樣:
Array
(
[Griffin] => Array
  (
  [0] => Peter
  [1] => Lois
  [2] => Megan
  )
[Quagmire] => Array
  (
  [0] => Glenn
  )
[Brown] => Array
  (
  [0] => Cleveland
  [1] => Loretta
  [2] => Junior
  )
)

例子 2
讓我們試著顯示上面的數組中的一個單一的值:

 代碼如下 複製代碼
echo "Is " . $families['Griffin'][2] .
" a part of the Griffin family?"; 以上代碼的輸出:
Is Megan a part of the Griffin family?


數組排序

 代碼如下 複製代碼

<?php
$array[] = array("age"=>20,"name"=>"li");
$array[] = array("age"=>21,"name"=>"ai");
$array[] = array("age"=>20,"name"=>"ci");
$array[] = array("age"=>22,"name"=>"di");
 
foreach ($array as $key=>$value){
 $age[$key] = $value['age'];
 $name[$key] = $value['name'];
}
 
array_multisort($age,SORT_NUMERIC,SORT_DESC,$name,SORT_STRING,SORT_ASC,$array);
print_r($array);
?>

更多array_multisort()可參考http://www.111cn.net/phper/php/42696.htm

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.