Abstract: PHP数组索引数组和关联数组的遍历,以及数组常用的函数;PHP文件处理常用函数以及不同模式下对文件的操作。
一、数组
1. 数组遍历
1 2 3 4 5 6 7
| <?php $arr1 = ['wm', 56, 'Beijing']; for($i=0; $i<count($arr1); $i++){ echo $arr1[$i]; echo PHP_EOL; } ?>
|
1 2 3 4 5 6 7 8 9 10 11
| <?php $arr = [ 'name' => 'zs', 'age' => 18, 'add' => 'China' ]; foreach($arr as $item =>$value){ echo $item . "=>" . $value; echo PHP_EOL; } ?>
|
for
遍历
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <?php
$arr = [ 'name' => 'zs', 'age' => 18, 'add' => 'China' ];
for($i=0; $i<count($arr); $i++){ echo key($arr) . '=>' . current($arr); echo PHP_EOL; next($arr); }
?>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| <?php $arr = [ 'name' => 'zs', 'age' => 18, 'add' => 'China' ]; $arr1 = $arr; $keyName = array_keys($arr); $valueName = array_values($arr); echo $keyName[0]; echo PHP_EOL; for($i=0; $i<count($arr); $i++){ echo $keyName[$i] . "=>" . $arr[$keyName[$i]]; echo PHP_EOL; }
for($i=0; $i<count($arr); $i++){ echo array_pop($arr1); next($arr1); echo PHP_EOL; } fwrite(STDOUT,iconv('utf-8','gb2312','使用for循环遍历关联数组')); echo PHP_EOL; for($i=0; $i<count($arr); $i++){ echo $keyName[$i] . '=>' . $valueName[$i]; echo PHP_EOL; } ?>
|
2. 数组常用函数
函数名称 |
作用 |
array_keys(array, value, strict) |
返回数组中所有的键名 |
array_values(array) |
返回数组中所有的值 |
count(array)/sizeof(array) |
返回数组中元素的数目 |
array_merge(array1, array2) |
把一个或多个数组合并为一个数组 |
array_key_exists(key, array) |
检查指定的键名是否存在与数组中 |
sort() |
对数值组进行升序排序 |
in_array(needle, haystack) |
检查数组中是否存在指定的值 |
array_unique() |
删除数组中重复的值 |
array_pop(array) |
删除数组中最后一个元素(栈) |
- array_keys(array, value, strict)
1 2 3 4 5 6 7 8 9 10 11 12
| <?php
$a = array("Volvo" => "XC90", "BMW" => "X5", "Toyota" => "Highlander"); //[0]=>Volvo [1]=>BMW [2]=>Toyota print_r(array_keys($a)); //[0]=>Toyota print_r(array_keys($a,"Highlander"));
$a=array(10,20,30,"10"); //[0]=>3 print_r(array_keys($a,"10",true)); ?>
|
- array_values(array) count()/sizeof()
1 2 3 4 5 6 7 8 9 10 11 12
| <?php
$a = array("Name" => "Peter", "Age" => "41", "Country" => "USA"); //[0]=>Peter [1]=>41 [2]=>USA print_r(array_values($a)); //3 echo count($a); echo PHP_EOL; //3 echo sizeof($a); echo PHP_EOL; ?>
|
- array_merge(array1, array2)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <?php
$a1 = array("a" => "red", "b" => "green"); $a2 = array("c" => "blue", "b" => "yellow"); //如果两个或更多个数组元素有相同键名,则最后元素会覆盖其他元素 //[a]=>red [b]=>yellow [c]=>blue print_r(array_merge($a1, $a2));
$a=array(3=>"red",4=>"green"); //若数组键名是整数,则该函数将返回以键名0开始进行重新索引 //[0]=>red [1]=>green print_r(array_merge($a));
?>
|
- array_key_exists(key, array)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| <?php $a=array("Volvo"=>"XC90","BMW"=>"X5"); if (array_key_exists("Volvo",$a)) { echo "Key exists!"; } else { echo "Key does not exist!"; } $a=array("Volvo","BMW"); if (array_key_exists(0,$a)) { echo "Key exists!"; } else { echo "Key does not exist!"; } ?>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| <?php $cars=array("Volvo","BMW","Toyota"); sort($cars);
$clength=count($cars); for($x=0;$x<$clength;$x++){ echo $cars[$x]; echo "<br>"; } // BMW Toyota Volvo $numbers=array(4,6,2,22,11); sort($numbers);
$arrlength=count($numbers); for($x=0;$x<$arrlength;$x++){ echo $numbers[$x]; echo "<br>"; } //2 4 6 11 22 ?>
|
1 2 3 4 5 6 7 8 9 10 11 12
| <?php $sites = array("Google", "Runoob", "Taobao", "Facebook"); if (in_array("Runoob", $sites)) { echo "找到匹配项!"; } else { echo "没有找到匹配项!"; } ?>
|
在练习二中成绩输入实例中也使用了in_array函数
1 2 3 4 5
| <?php $a=array("a"=>"red","b"=>"green","c"=>"red"); // [a]=>red [b]=>green print_r(array_unique($a)); ?>
|
1 2 3 4 5 6
| <?php $a=array("red","green","blue"); array_pop($a); // [0]=> red [1]=>green print_r($a); ?>
|
二、文件处理
1. 打开文件
fopen
模式
模式 |
描述 |
r |
只读。在文件的开头开始。 |
r+ |
读/写。在文件的开头开始。 |
w |
只写。打开并清空文件的内容;若文件不存在,则创建新文件。 |
w+ |
读/写。打开并清空文件的内容;若文件不存在,则创建新文件。 |
a |
追加,若文件不存在,则创建新文件。 |
a+ |
读/追加。 |
x |
只写。创建新文件。若文件已存在,则返回FALSE和一个错误。 |
x+ |
读/写,创建新文件。若文件已存在,则返回FALSE和一个错误。 |
2.检测文件末尾(EOF)
1 2 3
| if(feof($file)){ echo "文件末尾"; }
|
3. 逐行/字符读取文件
1 2 3 4 5 6 7 8 9
| <?php $file = fopen("welcome.txt", "r") or exit("无法打开文件!"); // 读取文件每一行,直到文件结尾 while(!feof($file)) { echo fgets($file). "<br>"; } fclose($file); ?>
|
1 2 3 4 5 6 7 8
| <?php $file=fopen("welcome.txt","r") or exit("无法打开文件!"); while (!feof($file)) { echo fgetc($file); } fclose($file); ?>
|
4. 写文件
fwrite(file, string, length)
和fputs(file, string, length)
1 2 3 4 5
| <?php $file = fopen("test.txt","w"); echo fwrite($file,"Hello World. Testing!"); fclose($file); ?>
|
1 2 3 4 5
| <?php $file = fopen("test.txt","w"); echo fputs($file,"Hello World. Testing!"); fclose($file); ?>
|