* 函數主要要搞清楚以下幾點?
* 1. 功能:能做什麼?
* 2.場景: 用在哪裡?
# * 3. 參數: 必選與可選的
* 4. 傳回值: 類型與數量
* 一、鍵與值的運算(6個)
* 1. in_array(value, array): val是否在array中,傳回布林值
* 2. array_key_exists(key,array):key是否在array中,傳回布林值
* 3. array_values(array): 以索引方式傳回array值部分
* 4. array_keys(array[,value]): 以索引方式傳回array鍵部分,還可傳回指定值的鍵
* 5. array_search(value, array): 以字串方式傳回指定值的鍵
* 6. array_filp(array):鍵值對調
* 二、陣列內部指標(巡航)作業(8個)
* 1. key(array):傳回目前元素的鍵
* 2. current(array):目前元素的值,pos()為同名函數
* 3. next(array):指標下移,指向下一個元素,傳回目前值
* 4. reset(array):指標重設,指向第一個元素,並傳回它的值
* 5. end(array):指標移動最後一個元素上
* 6. prev(array):指標向前移動一位,並返回目前元素的值
* 7. each(array):傳回目前元素的鍵值的索引與關聯描述的陣列,並自動下移指標
* 8. list($a ,$b,...):將索引數組中的值,賦值給一組變數
echo '<pre class="brush:php;toolbar:false">'; $user = ['id'=>5,'name'=>'peter','gender'=>'male','age'=>30]; print_r($user); //查看数组 echo '<hr color="red">';
//一.數組中的鍵與值的常用運算函數
// 1. in_array(value, array): val是否在array中,傳回布林值
echo in_array('Peter Zhu',$user) ? '存在<br>' : '不存在<br>';
//2. array_key_exists(key,array):key是否在array中,傳回布林值
echo array_key_exists('name',$user) ? '存在<br>' : '不存在<br>';
//3.array_values(array): 以索引方式傳回array值部分
print_r(array_values($user));
//4.array_keys(array[,value]): 以索引方式傳回array鍵部分
print_r(array_keys($user));
//4-1.array_keys(array[,value]): 以索引方式傳回array鍵部分,還可傳回指定值的鍵
print_r(array_keys($user,'male'));
//5. array_search(value, array):以字串方式傳回指定值的鍵
print_r(array_search('peter', $user));
//6. array_filp(array):鍵值對調
print_r(array_flip($user));
// 二、陣列內部指標(巡航)動作
//count(array)目前陣列的元素數量
echo count($user),'<br>';
//目前指標位元指向第一個元素
//1.key(array):傳回目前元素的鍵
echo key($user),'<br>';
//2.current(array):目前元素的值,pos()為同名函數
echo current($user), '<br>';
//3.next(array):指標下移,指向下一個元素
next($user);
//查看目前元素的鍵值
echo key($user),'<br>'; echo current($user), '<br>';
//next(array)除將指標下移外,還可以傳回目前元素的值
var_dump(next($user)); echo key($user),'<br>'; echo current($user), '<br>';
//繼續向下遍歷,發現next(array)回傳false,說明遍歷結束
var_dump(next($user));
# //已到結尾無資料,不會再有輸出
echo key($user),'<br>'; echo current($user), '<br>';
//4.reset(array):指標重設,指向第一個元素,並傳回它的值
##reset ($user);//除重設外,還可傳回第一個元素的值// var_dump(reset($user));echo key($user),'<br>'; echo current($user), '//5. end(array):指標移動最後一個元素上end($user);// var_dump(end($user)); //也能傳回目前元素的值
';
echo key($user),'<br>'; echo current($user), '//6. prev(array):指標向前移動一位,並傳回目前元素的值
';
prev($user); echo key($user),'<br>'; echo current($user), '//7. each(array): 傳回目前元素的鍵值的索引與關聯描述的陣列,並自動下移指標 * 傳回四個元素的陣列: * 2個索引元素, [0]是鍵,[ 1]是值 * 2個關聯元素, [key]是鍵, [value]是值@print_r(each($user)); #/ /注意:因執行效率的問題,這個函數在php7中已經廢棄//8. list($a,$b,...):將索引數組中的值,賦值給一組變數
';
reset($user); //复位指针* 執行的動作: * 1.each($user): 取得目前元素的索引部分 * 2.list($key, $value ): [0]的值賦給變數$key, [1]的值賦給變數$value * 3.陣列$user指標自動下移
list($key, $value) = each($user); echo $key,'=>'.$value,'<br>';//重複調用
list($key, $value) = each($user); echo $key,'=>'.$value,'<br>';//非常適合用迴圈來實作
echo '<hr color="blue">'; reset($user); while(list($key, $value) = each($user)) { echo $key,'=>'.$value,'<br>'; }