php学习笔记7-(数组操作)
来源:互联网 发布:java编译过程详解 编辑:程序博客网 时间:2024/05/29 16:29
php支持两种数组,一种是普通的数字索引的数组,从0开始,类似Java(为什么不说C呢?因为数组的数组是多维数组,然而子数组的长度可以是任意的,不必每个都相同,php中的数组都是这样的)。还支持另外一种数组,key/value进行映射的数组,相当于java中的Hashtable。数组的操作方式也是多种多样的,这里还提到了foreach的用法。
foreach ( $array as $value ) ...;
foreach ( $array as $key=>$value ) ...;
这次的程序同样是一个解释执行的普通脚本,而非一个服务器脚本。
foreach ( $array as $value ) ...;
foreach ( $array as $key=>$value ) ...;
这次的程序同样是一个解释执行的普通脚本,而非一个服务器脚本。
#!/usr/bin/php
<?php
# array declare
$strs=array('a','b','c');
echo "Stage 1: ";
for ( $i=0; $i<count($strs); $i++ )
echo "$strs[$i] ";
echo " ";
# array_push() / array_pop() <-- operate like a stack
$numbers=array();
echo "Stage 2: ";
for ( $i=0; $i<10; $i++ ) array_push($numbers,$i*3); // append an element
foreach ( $numbers as $x ) echo "$x ";
echo " ";
while ( count($numbers)>0 )
echo array_pop($numbers)." ";
echo " ";
# key / value
echo "Stage 3: ";
$prices=array('Lyre'=>250,'Shaka'=>600,'Sakura'=>20,'Aiakos'=>280);
foreach ( $prices as $key=>$value ) echo "$key : $value ";
echo " ";
# browse an array
echo "Stage 4: ";
reset($prices); # move the pointer to the start of the array
while ( list($product, $price)=each($prices) ) { # here, each() returns the current element as an array
# and assigned to $product and $price by the result of
# list(), then each() moves the pointer to the next element
echo "$product : $price ";
}
# current(), each(), next(), prev(), pos(), reset(), end()
echo "----------------- ";
$value=end($prices); // move to the end of the array
do {
echo $value." "; # pos() 的返回让我很惊讶!
$value=prev($prices);
} while ( $value );
echo " ";
# 多维数组
echo "Stage 5: ";
$multi_way=array( # declare is so simple
array(1,2,3,4,5), # 5 elements
array('this','is','an','array') # 4 elements
);
for ( $i=0; $i<count($multi_way); $i++ ) :
for ( $j=0; $j<count($multi_way[$i]); $j++ ) echo $multi_way[$i][$j].' '; # do not include
# $multi_way[$i][$j] into
# a string
echo " ";
endfor;
echo "------------------ ";
foreach ( $multi_way as $sub_arr ) :
foreach ( $sub_arr as $sub_value ) echo "$sub_value ";
echo " ";
endforeach;
echo " ";
# shuffle() - random an array
# range(start,end[,step]) - generate an array
# array_reverse() - reverse an array
# sort(), usort()(sort according to an user defined function),
# asort()(sort an key/value array), ksort()(only sort the keys)
# rsort(), arsort(), krsort() <== sort by descendant order
echo "Stage 6: ";
$tens=range(1,10,2);
foreach ($tens as $value) echo "$value "; echo " ";
shuffle($tens);
foreach ($tens as $value) echo "$value "; echo " ";
$tens=array_reverse($tens);
foreach ($tens as $value) echo "$value "; echo " ";
sort($tens);
foreach ($tens as $value) echo "$value "; echo " ";
rsort($tens);
foreach ($tens as $value) echo "$value "; echo " ";
echo " ";
# count() and sizeof() are the same
# array_count_values 统计各元素个数。
echo "Stage 7: ";
$arr=array(1,3,2,42,23,324,234,23,4,34,1,3,3,3);
$tj=array_count_values($arr);
foreach ( $tj as $key=>$value ) echo "$key$value ";
echo " ";
# extract() extract the key/values into variables
echo "Stage 8: ";
$arr=array(
'key1'=>'value1',
'key2'=>'value2',
'key3'=>'value3'
);
extract($arr);
echo "$key1 $key2 $key3 ";
# array_walk() applies a function to an array
echo "Stage 9: ";
$arr1=range(1,10);
function print1($value) {
echo "$value ";
}
array_walk($arr1,'print1');
echo "------ ";
$arr2=array('num1'=>1,'num2'=>2,'num3'=>3);
function print2(&$value,$key,$user_data) { # pay attention to &
$value*=$user_data;
if ( $key=='num2' ) $value+=20;
}
array_walk(&$arr2,'print2',3); # pay attention to &
foreach ( $arr2 as $key=>$value ) echo "$key$value ";
?>
<?php
# array declare
$strs=array('a','b','c');
echo "Stage 1: ";
for ( $i=0; $i<count($strs); $i++ )
echo "$strs[$i] ";
echo " ";
# array_push() / array_pop() <-- operate like a stack
$numbers=array();
echo "Stage 2: ";
for ( $i=0; $i<10; $i++ ) array_push($numbers,$i*3); // append an element
foreach ( $numbers as $x ) echo "$x ";
echo " ";
while ( count($numbers)>0 )
echo array_pop($numbers)." ";
echo " ";
# key / value
echo "Stage 3: ";
$prices=array('Lyre'=>250,'Shaka'=>600,'Sakura'=>20,'Aiakos'=>280);
foreach ( $prices as $key=>$value ) echo "$key : $value ";
echo " ";
# browse an array
echo "Stage 4: ";
reset($prices); # move the pointer to the start of the array
while ( list($product, $price)=each($prices) ) { # here, each() returns the current element as an array
# and assigned to $product and $price by the result of
# list(), then each() moves the pointer to the next element
echo "$product : $price ";
}
# current(), each(), next(), prev(), pos(), reset(), end()
echo "----------------- ";
$value=end($prices); // move to the end of the array
do {
echo $value." "; # pos() 的返回让我很惊讶!
$value=prev($prices);
} while ( $value );
echo " ";
# 多维数组
echo "Stage 5: ";
$multi_way=array( # declare is so simple
array(1,2,3,4,5), # 5 elements
array('this','is','an','array') # 4 elements
);
for ( $i=0; $i<count($multi_way); $i++ ) :
for ( $j=0; $j<count($multi_way[$i]); $j++ ) echo $multi_way[$i][$j].' '; # do not include
# $multi_way[$i][$j] into
# a string
echo " ";
endfor;
echo "------------------ ";
foreach ( $multi_way as $sub_arr ) :
foreach ( $sub_arr as $sub_value ) echo "$sub_value ";
echo " ";
endforeach;
echo " ";
# shuffle() - random an array
# range(start,end[,step]) - generate an array
# array_reverse() - reverse an array
# sort(), usort()(sort according to an user defined function),
# asort()(sort an key/value array), ksort()(only sort the keys)
# rsort(), arsort(), krsort() <== sort by descendant order
echo "Stage 6: ";
$tens=range(1,10,2);
foreach ($tens as $value) echo "$value "; echo " ";
shuffle($tens);
foreach ($tens as $value) echo "$value "; echo " ";
$tens=array_reverse($tens);
foreach ($tens as $value) echo "$value "; echo " ";
sort($tens);
foreach ($tens as $value) echo "$value "; echo " ";
rsort($tens);
foreach ($tens as $value) echo "$value "; echo " ";
echo " ";
# count() and sizeof() are the same
# array_count_values 统计各元素个数。
echo "Stage 7: ";
$arr=array(1,3,2,42,23,324,234,23,4,34,1,3,3,3);
$tj=array_count_values($arr);
foreach ( $tj as $key=>$value ) echo "$key$value ";
echo " ";
# extract() extract the key/values into variables
echo "Stage 8: ";
$arr=array(
'key1'=>'value1',
'key2'=>'value2',
'key3'=>'value3'
);
extract($arr);
echo "$key1 $key2 $key3 ";
# array_walk() applies a function to an array
echo "Stage 9: ";
$arr1=range(1,10);
function print1($value) {
echo "$value ";
}
array_walk($arr1,'print1');
echo "------ ";
$arr2=array('num1'=>1,'num2'=>2,'num3'=>3);
function print2(&$value,$key,$user_data) { # pay attention to &
$value*=$user_data;
if ( $key=='num2' ) $value+=20;
}
array_walk(&$arr2,'print2',3); # pay attention to &
foreach ( $arr2 as $key=>$value ) echo "$key$value ";
?>
- php学习笔记7-(数组操作)
- PHP学习笔记-数组
- PHP学习笔记-数组
- php学习笔记--数组
- PHP数组学习笔记
- PHP学习笔记-数组
- PHP学习笔记之数组操作//待完善V1.0
- php学习笔记--数组排序
- php 数组函数学习笔记
- PHP学习笔记9:数组
- js数组操作学习笔记
- php学习笔记:php中的数组
- php学习笔记:第五节--php数组
- PHP学习笔记【11】--PHP数组
- PHP学习笔记【12】--PHP数组排序
- PHP学习笔记之PHP数组
- PHP学习笔记--字符串操作
- PHP操作MongoDB学习笔记
- 水龙吟·春恨
- C语言的转义字符(11)
- 开发人员应该看得电影
- 快哉《君子》万里风
- 从一个小巧的计算器,体会递归下降的方法
- php学习笔记7-(数组操作)
- C语言的库文件查找次序就是include问题(12)
- Solaris 10 ADSL 拨号上网
- MS Visio Professional 生成sql
- 欢迎使用WINX!
- 关于.net程序员必读的几本好书
- 软件项目管理框架
- 家妹完婚,心感欣慰,也不舍。
- 收敛水