PHP常用函數:陣列(array)

如果初始化為
$arr = array(1, 2, 3, 4, 5);

$arr[] = 10; 插入一個 index 為 5,value 為 10 的元素。
$arr["x"] = 18; 插入一個 index 為字串 "x",value 為整數 18 的元素。

count($arr):計算陣列裡的元素個數。
unset($arr[1]):去掉 index 為 1 的元素
unset($arr):將整個陣列清空,但之後如果再加入元素,其 index 是往上累加的,而非從 0 開始。
print_r($arr):(print human-readable)印出對人們來說較易讀的變數資訊,如果傳入的變數是陣列,則會將其中的 key-value 全都印出來。
array_values($arr):由於用 unset() 去掉陣列的元素後 index 可能會很混亂,此時可用 array_values() 函數來重整 index。

<?php
$a = array(1 => 'one', 2 => 'two', 3 => 'three');
unset($a[2]);
/* will produce an array that would have been defined as
$a = array(1 => 'one', 3 => 'three');
and NOT
$a = array(1 => 'one', 2 =>'three');
*/

$b = array_values($a);
// Now $b is array(0 => 'one', 1 =>'three')
?>


(array) $scalarVar, array($scalarVar):兩者都是將某個數字換字串型別的變數 $scalarVar 轉成一個只具有一個元素,其 index 為 0,value 為 $scalarVar 的陣列。
array_diff($arr1, $arr2, ...):回傳一個陣列,其元素為在陣列 $arr1 中,卻沒有出現在其他陣列的元素。
sort($arr):將陣列中的元素依 index 排列。

PHP 中陣列的互相指派基本上是直接複製一份的方式,與 C 或 Java 中只複製指標,但所指向記憶體還是一樣的方式不同。如果在 PHP 中只想複製指標,則必須使用解址 (address-of) 運算子 $:

<?php
$arr1 = array(2, 3);
$arr2 = $arr1;
$arr2[] = 4; // $arr2 is changed,
// $arr1 is still array(2, 3)

$arr3 = &$arr1;
$arr3[] = 4; // now $arr1 and $arr3 are the same
?>


欲查找更多有關 PHP 陣列的函數,可至此網址:http://tw.php.net/manual/en/ref.array.php

留言

這個網誌中的熱門文章

PHP:callback函數的使用

PHP:變數範圍