6.3.4 list()函數的語法結構
聯合使用list( )、each( )和while循環遍歷數組
?array each ( array array)
返回 array 數組中當前指針位置的鍵/值對并向前移動數組指針。鍵值對被返回為四個單元的數組,鍵名為 0,1,key 和 value。單元 0 和 key 包含有數組單元的鍵名,1 和 value 包含有數據。
如果內部指針越過了數組的末端,則 each() 返回 FALSE。
each() 經常和list( ) 結合使用來遍歷數組。
?void list ( mixed ...)
–它不是真正的函數,而是語言結構。list() 用一步操作給一組變量進行賦值。
注: list() 僅能用于數字索引的數組并假定數字索引從0開始。
–在執行 each() 之后,數組指針將停留在數組中的下一個單元或者當碰到數組結尾時停留在最后一個單元。如果要再用 each 遍歷數組,必須使用reset( )。
<?php
//聲明一個數組$contact作為each()函數的參數
$contact = **array**("ID" => 1, "姓名" => "高某", "公司" => "A公司", "地址" => "北京市" );
$id = each($contact); //返回數組$contact中第一個元素的鍵/值對,是帶有4個元素的數組
print_r($id); //輸出數組$id:Array ( [1] => 1 [value] => 1 [0] => ID [key] => ID)
$name = each($contact); //返回數組$contact中第二個元素的鍵/值對,是帶有4個元素的數組
print_r($name); //輸出Array ( [1] => 高某 [value] => 高某 [0] => 姓名 [key] => 姓名)
$info = **array**('coffee', 'brown', 'caffeine'); //聲明一個索引數組$info
**list**($drink, $color, $power) = $info; //將數組中的所有元素轉為變量
**echo** "**$drink** is **$color** and **$power** makes it special.\n"; //三個變量值是數組中三個元素的值
**list**($drink, , $power) = $info; //將數組中的部分元素轉換為變量
**echo** "**$drink** has **$power**.\n"; //兩個變量值是數組中前兩個元素的值
**list**( , , $power) = $info; //跳過前兩個只將數組中第三個元素轉為變量
**echo** "I need **$power**!\n"; //輸出的一個變量值是數組中第三個元素的值
test.php
<?php
/*
* 使用for遍歷數組
*
*
* 保證數組: 一定要是下標連續的索引數組
*
* 優點:
*
* 效率很高, 就是數組訪問方式, 只不過通過循環去取值
*
* count(數組) 獲取數組的長度, 是數組的實際元素的個數
*
*不足:
1. 數組下標不一定是連續的
* 2. 關聯數組for 不能遍歷出值
*
*
foreach() 語法
1.
foreach(數組 as 自定義變量) {
}
一、 數組有多少個元素, foreach就循環多少次
二、foreach會將數組中的元素 在每次循環中, 依次將元素的值給自定義的變量, 在每次循環中用到這個變量,即用到了當前的數組中的元素
2.
foreach(數組 as 下標變量 => 值變量) {
}
*
*/
/* $arr = array("one"=>"aa", "bb", "three"=>"cc", "dd", 9=>"ee", "ff", "four"=>"ggg", "hh", "xxx", "yyy", "zz");
foreach($arr as $kk => $vv) {
echo "{$kk} =============> {$vv} <br>";
}
*/
/*
$group = [
"name"=>"第三組",
"price"=>888,
["name"=>"zs", "age"=>20, "sex"=>"男", "email"=>"aaa@bbb.com"],
["name"=>"ls", "age"=>21, "sex"=>"女", "email"=>"bbb@bbb.com"],
["name"=>"ls", "age"=>21, "sex"=>"女", "email"=>"bbb@bbb.com"],
["name"=>"ls", "age"=>21, "sex"=>"女", "email"=>"bbb@bbb.com"],
["name"=>"ls", "age"=>21, "sex"=>"女", "email"=>"bbb@bbb.com"],
["name"=>"ls", "age"=>21, "sex"=>"女", "email"=>"bbb@bbb.com"],
["name"=>"ls", "age"=>21, "sex"=>"女", "email"=>"bbb@bbb.com"],
["name"=>"ls", "age"=>21, "sex"=>"女", "email"=>"bbb@bbb.com"],
["name"=>"ls", "age"=>21, "sex"=>"女", "email"=>"bbb@bbb.com"],
["name"=>"ls", "age"=>21, "sex"=>"女", "email"=>"bbb@bbb.com"],
["name"=>"ww", "age"=>22, "sex"=>"男", "email"=>"cccc@bbb.com"]
];
echo '<table border="1" width="800" align="center">';
echo '<caption><h1>數組轉為表格<h1></caption>'
foreach($group as $k=>$row) {
echo '<tr>';
if(is_array($row)) {
foreach($row as $col) {
echo '<td>'.$col.'</td>';
}
} else {
echo '<td colspan="4">'.$k.':'.$row.'</td>';
}
echo '</tr>';
}
echo '</table>';
*/
/*
*
* list() 函數 但這個函數和其它函數用法不同
*
*
* 作用: 將數組中的元素轉為變量使用
*
* 1. 等號左邊使用list()函數, 等號右邊只能是一個數組
*
* 2. 數組中有幾個元素, 在list()中就用幾個參數,而且參數必數是變量(新聲明的自定義變量), 不能是值
*
* 3. 只能將索引數組(下標是連續), 轉為變量, 是按下標0開始找的
*
* 4. 可以在list()參數中通過,空項選擇性的接收數組中的元素
*
*/
/*
list($a, , $c) = array("妹子", "峰哥", "第三者");
echo $a."<br>";
// echo $b."<br>";
echo $c."<br>";
$str="峰哥_好帥";
list($name,$pro) = explode("_", $str);
echo $name.'<br>';
echo $pro.'<br>';
*/