php為我們提供了豐富的陣列操作函式,用這些函式可以非常方便的實現我們所想實現的功能。
新增和刪除陣列元素
新增元素的方法
array_unshift(array array,mixed var [,mixed var...])
在陣列頭新增元素,所有的數值鍵會被相應的修改,但關聯鍵不會受到影響
array_push(array array,mixed var [,mixed var.....])
在陣列尾新增元素
刪除陣列元素的方法
array_shift(array array)
刪除陣列頭元素,所有的數值鍵會被相應的修改,但關聯鍵不會受到影響,並返回被刪除元素的值
array_pop(array array)
刪除陣列尾的元素,並返回被刪除元素的值
========================================================================================
key()函式返回陣列當前指標所在位置的鍵
current()函式返回當前指標所在位置元素的值
next()將陣列指標朝下一個位置移動並返回該元素的值,如果已經是最後一個位置則當再次對該陣列使用這個函式將返回FALSE
prev()將陣列指標朝上一個位置移動並返回該元素的值,如果到第一個位置時,再次使用prev()對該陣列操作將返回FALSE
end()將陣列指標移動到最後一個位置
reset() 將陣列指標移動第一個位置
用這些函式,實現print_r()函式的功能
<?php
//正序列印陣列
function print_array_next($arr)
{
if(!is_array($arr))
{
return false;
//不是陣列
}
reset($arr);//先將陣列指標歸位
echo 'Array('.key($arr).'=>'.current($arr).' ';
while(next($arr))
{
//next()將陣列指標往下一個位置移動,如果已經是最後一個位置則返回FALSE
//故可以將其作為迴圈條件
echo key($arr).'=>'.current($arr).' ';
}
echo ')';
}
//逆序列印陣列
function print_array_prev($arr)
{
if(!is_array($arr))
{
return false;
//不是陣列
}
end($arr);//先將陣列指標移動最後一位
echo 'Array('.key($arr).'=>'.current($arr).' ';
while(prev($arr))
{
//prev()將陣列指標往下一個位置移動,如果已經是第一個一個位置則返回FALSE
//故可以將其作為迴圈條件
echo key($arr).'=>'.current($arr).' ';
}
echo ')';
}
$arr = array('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
print_array_next($arr);
echo '
';
print_array_prev($arr);
?>
輸出結果:
Array(a=>1 b=>2 c=>3 d=>4 e=>5 )
Array(e=>5 d=>4 c=>3 b=>2 a=>1 )
本作品採用《CC 協議》,轉載必須註明作者和本文連結