萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> php入門教程數組的操作教程

php入門教程數組的操作教程

什麼是數組?
在使用 PHP 進行開發的過程中,或早或晚,您會需要創建許多相似的變量。

無需很多相似的變量,你可以把數據作為元素存儲在數組中。

數組中的元素都有自己的 ID,因此可以方便地訪問它們。

有三種數組類型:
數值數組
帶有數字 ID 鍵的數組
關聯數組
數組中的每個 ID 鍵關聯一個值
多維數組
包含一個或多個數組的數組 數值數組
數值數組存儲的每個元素都帶有一個數字 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";
?>
以上代碼的輸出:

Quagmire and Joe are Peter's neighbors關聯數組
關聯數組,它的每個 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.多維數組
在多維數組中,主數組中的每個元素也是一個數組。在子數組中的每個元素也可以是數組,以此類推。

例子 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?

向array中添加元素
php是一個弱類型語言。因此不必象c語言那樣為php array聲明長度。向其中添加元素的過程也是聲明和初始化的過程。
 代碼如下:
$capitals = array(
'Alabama' => 'Montgomery',
'Alaska' => 'Juneau',
'Arizona' => 'Phoenix'
);

繼續添加元素也很簡單
 代碼如下:
$capitals['Arkansas'] = 'Little Rock';

如果不是關聯數組而只是數字索引的數組可以使用array_push()和array_unshift()函數增加元素
2、從array中刪除元素
從數組中移除元素可以使用unset() 函數
 代碼如下:
unset($capitals['California']);

也可以使用array_pop()或array_shift()函數從數組頭或尾部順序移除元素
3、array鍵值互換
如果希望新建數組的鍵是老數組的值而值是老數組的鍵,簡而言之就是鍵值對調,則可以使用array_flip()函數完成操作
 代碼如下:
$capitals = array(
'Alabama' => 'Montgomery',
'Alaska' => 'Juneau',
'Arizona' => 'Phoenix'
);
$states = array_flip($capitals);
// $states = array(
// 'Montgomery' => string 'Alabama',
// 'Juneau' => string 'Alaska',
// 'Phoenix' => string 'Arizona'
// );

4、合並數組
如果希望將兩個或多個數組合並成一個新的數組,array_merge()函數可以幫上這個忙^_^
 代碼如下:
$stateCapitals = array(
'Alabama' => 'Montgomery',
'Alaska' => 'Juneau',
'Arizona' => 'Phoenix'
);
$countryCapitals = array (
'Australia' => 'Canberra',
'Austria' => 'Vienna',
'Algeria' => 'Algiers'
);
$capitals = array_merge($stateCapitals, $countryCapitals);

5、修改array中的值
譬如希望將數組的中值全部改為小寫後大寫首字母,使用回調函數遞歸地對每個數組成員調用是個不錯的方法,php中這個函數是php_map()
 代碼如下:
function capitalize($element)
{
$element = strtolower($element);
return ucwords($element);
}
$capitals = array(
'Alabama' => 'montGoMEry',
'Alaska' => 'Juneau',
'Arizona' => 'phoeniX'
);
$capitals = array_map("capitalize", $capitals);

6、根據array的鍵為數組排序
 代碼如下:
$capitals = array(
'Arizona' => 'Phoenix',
'Alaska' => 'Juneau',
'Alabama' => 'Montgomery'
);
ksort($capitals);

7、隨機化array元素的順序
shuffle() 和上面的ksort()函數恰恰相反,可以打亂數組現有的秩序,以達到隨機化的目的。
 代碼如下:
$capitals = array(
'Arizona' => 'Phoenix',
'Alaska' => 'Juneau',
'Alabama' => 'Montgomery'
);
shuffle($capitals);

8、查找鍵或值是否存在
查找是否存在值使用in_array()函數
 代碼如下:
$capitals = array(
'Arizona' => 'Phoenix',
'Alaska' => 'Juneau',
'Alabama' => 'Montgomery'
);
if (in_array("Juneau", $capitals))
{
echo "Exists!";
} else {
echo "Does not exist!";
}

查找是否存在鍵使用array_key_exists()函數
 代碼如下:
$capitals = array(
'Arizona' => 'Phoenix',
'Alaska' => 'Juneau',
'Alabama' => 'Montgomery'
);
if (array_key_exists("Alaska", $capitals))
{
echo "Key exists!";
} else {
echo "Key does not exist!";
}

9、數組查找
這個是老生常談了,基本上都用的到array_search()函數
 代碼如下:
$capitals = array(
'Arizona' => 'Phoenix',
'Alaska' => 'Juneau',
'Alabama' => 'Montgomery'
);
$state = array_search('Juneau', $capitals);
// $state = 'Alaska'

10、使用php標准函數庫
一口氣介紹這個多操作array的函數,如果您還覺得不過瘾,可以繼續查看Standard PHP Library 中的內容^_^
 代碼如下:
$capitals = array(
'Arizona' => 'Phoenix',
'Alaska' => 'Juneau',
'Alabama' => 'Montgomery'
);
$arrayObject = new ArrayObject($capitals);
foreach ($arrayObject as $state => $capital)
{
printf("The capital of %s is %s<br />", $state, $capital);
}
// The capital of Arizona is Phoenix
// The capital of Alaska is Juneau
// The capital of Alabama is Montgomery

 

copyright © 萬盛學電腦網 all rights reserved