当前位置:Linux教程 - Php - 如何在PHP中使用数组

如何在PHP中使用数组

在 PHP 里要使用数组时,只要将变量进行「初始化」数组时的程序即可。

范例:
$names[0] = ""Jollen""
$names[1] = ""Jordan""
$names[2] = ""Kitty""
$names[""howmany""] = 3;
scalar array 与 associative array

在上面的例子中,我们看到:
$names[3] = ""Kitty""
是以 3 这个数值做索引,以数值做索引 (index, key) 的数组称为 scalar array。

另外一个例子:
$names[""howmany""] = 3;
以字符串做索引的数组我们称为 associative array。

多维数组
多维数组的初始化与一维数组方法相同,例如:
$alpha[0][0] = ""A"";
$alpha[0][1] = ""B"";
$alpha[1][0] = ""C"";
$alpha[1][1] = ""D"";
这种写法等于:
$alpha[0][] = ""A"";
$alpha[0][] = ""B"";
$alpha[1][] = ""C"";
$alpha[1][] = ""D"";

数组的内部指针

PHP 里的数组事实上是利用资料结构中的双向键接串列來维护的,因此我们可以利用 next() 与 pre()函数数组列的內部指标往前或往后一个元素。数组里的指标除了利用 PHP 提供的函数外,外界无法直接去改变数组的內部指标。
PHP 数组函数 - array()、count()、current()、list()、next()、pre()、reset()、key()、array()

用途:
建立一个数组,依给定的参数 (语法) 传回数组。

范例:
$name = array(""Jollen"", ""Paul"", ""Ketty"");

相当于:
$name[0] = ""Jollen"";
$name[1] = ""Paul"";
$name[2] = ""Ketty"";
array() 亦可为用在巢状式数组:
$fruits = array(
""fruits"" => array(""a""=>""orange"",""b""=>""banana"",""c""=>""apple""),
""numbers"" => array(1, 2, 3, 4, 5, 6),
""holes"" => array(""first"", 5 => ""second"", ""third"")
);

上面为建立一个二维数组的范例。此例相当于:
$fruits[""fruits""][""a""] = ""orange"";
$fruits[""fruits""][""b""] = ""banana"";
$fruits[""fruits""][""c""] = ""apple"";

$fruits[""numbers""][0] = 1;
$fruits[""numbers""][1] = 2;
$fruits[""numbers""][2] = 3;
$fruits[""numbers""][3] = 4;
$fruits[""numbers""][4] = 5;
$fruits[""numbers""][5] = 6;

$fruits[""holes""][0] = ""first"";
$fruits[""holes""][5] = ""second"";
$fruits[""holes""][6] = ""third"";

array() 事实上并不是函数,而是 PHP 提供的一个语法。
count()
定义:
int count(mixed var);

用途:
传回 var (通常为阵列) 的元素个数,非阵列的变量则只有一个元素。没果没有这个 var 变量,则传回 0;如果 var 不是数组,则传回 1。

范例:
$names = array(""jollen"", ""nick"", ""frank"");
echo count($names);
输出:
3
current()
定义:
mixed current(array array);
用途:

传回目前数组里的指针所指元素的「值」。每一个数组都有一个内部的指针,指向其中的一个元素。数组的所有元素利用双向串行连接,这个指针便指向目前的元素。一开始这个指标是指到数组的第一个元素,利用其他函数存取数组時,便会改变这个指标,current() 便是传回目前所指的数组元素的值,但不会改变这个指标的位置。

传回指针指向数组的范围之外的位置,便传回 false。有一特殊情况要特別小心,当元素的值为 0 或是空字串 """" 时,也会传回 false,此时可改用 echo()函数。
list()
list() 并不是一个 function,而是像 array() 一样,属于 PHP 的语法。list() 用来一次给定多个值给多个变量。
范例:






$result = mysql($conn, ""SELECT id, name, salary FROM employees"");
while (list($id, $name, $salary) = mysql_fetch_row($result)) {
print(""
"".
""
"".
""
"".
""
"");
}

?>
Employee name Salary
$name$salary

next()
定义:
mixed next(array array);

用途:

传回下一个数组指针所指的值,注意是先把指针往下移,再传回值。如果元素的值是 0 或 """" (空字符串),则传回 false。当指针已指向数组尾段,无法再往下移时,则传回 false。
可利用 echo() 函数来观察数组中是否有 0 或 """"。
prev()

定义:
mixed prev(array array);

用途:
将数组内部指针往前移前一位后,再传回元素的值。

reset()

定义:
mixed reset(array array);
用途:将数组的指针初始化,即移到第一个元素的位置,并且传回第一个元素的值。

key()

定义:
mixed key(array array);

用途:

传回目前 associative array 中的 key,即数组内部指针所指元素位置的 key。配合 reste()、next() 的综合范例如下:

$fruits = array(""d""=>""lemon"",""a""=>""orange"",""b""=>""banana"",""c""=>""apple"");
arsort($fruits);
for(reset($fruits); $key = key($fruits); next($fruits)) {
echo ""fruits[$key] = "".$fruits[$key].""
"";
}

输出:

fruits[a] = orange
fruits[d] = lemon
fruits[b] = banana
fruits[c] = apple

循环由第一个元素开始拜访所有的元素,到最后一个元素结束。<