游客

PHP零基础教程-第四课-数组与字符串深入

一言准备中...

一、回顾上节课内容

  1. 条件控制语句(if/switch)
  2. 循环结构(while/for/foreach)
  3. 函数基础与作用域

二、数组深入

1. 多维数组

(1) 二维数组

<?php
// 创建二维数组
$students = array(
    array("张三", 20, "男"),
    array("李四", 22, "女"),
    array("王五", 21, "男")
);

// 访问二维数组
echo $students[0][0];  // 输出"张三"
echo $students[1][1];  // 输出22

// 遍历二维数组
foreach ($students as $student) {
    echo "姓名: ".$student[0].", 年龄: ".$student[1].", 性别: ".$student[2]."<br>";
}
?>

(2) 关联多维数组

<?php
$products = array(
    array(
        "id" => 1,
        "name" => "手机",
        "price" => 2999
    ),
    array(
        "id" => 2,
        "name" => "笔记本",
        "price" => 5999
    )
);

// 遍历关联多维数组
foreach ($products as $product) {
    echo "产品ID: ".$product["id"]."<br>";
    echo "产品名称: ".$product["name"]."<br>";
    echo "产品价格: ".$product["price"]."<br><br>";
}
?>

2. 常用数组函数

(1) 数组操作

<?php
$fruits = array("苹果", "香蕉", "橙子");

// count() - 获取数组长度
echo count($fruits);  // 输出3

// array_push() - 向数组末尾添加元素
array_push($fruits, "葡萄");
print_r($fruits);

// array_pop() - 删除并返回数组最后一个元素
$last = array_pop($fruits);
echo "被删除的元素: $last";

// array_merge() - 合并数组
$moreFruits = array("梨", "西瓜");
$allFruits = array_merge($fruits, $moreFruits);
print_r($allFruits);
?>

(2) 数组排序

<?php
$numbers = array(3, 1, 4, 2, 5);

// sort() - 对数组升序排序
sort($numbers);
print_r($numbers);

// rsort() - 对数组降序排序
rsort($numbers);
print_r($numbers);

// asort() - 根据关联数组的值升序排序
$age = array("张三"=>25, "李四"=>20, "王五"=>30);
asort($age);
print_r($age);

// ksort() - 根据关联数组的键升序排序
ksort($age);
print_r($age);
?>

3. 其他实用数组函数

<?php
// array_keys() - 获取数组的所有键
$keys = array_keys($age);
print_r($keys);

// array_values() - 获取数组的所有值
$values = array_values($age);
print_r($values);

// in_array() - 检查数组中是否存在某个值
if (in_array("苹果", $fruits)) {
    echo "找到了苹果";
}

// array_search() - 在数组中搜索给定的值并返回键
$key = array_search("香蕉", $fruits);
echo "香蕉的键是: $key";
?>

三、字符串深入

1. 常用字符串函数

(1) 字符串长度与截取

<?php
$str = "Hello PHP World";

// strlen() - 获取字符串长度
echo strlen($str);  // 输出15

// substr() - 截取字符串
echo substr($str, 6);     // 输出"PHP World" (从第6个字符开始)
echo substr($str, 6, 3);  // 输出"PHP" (从第6个字符开始,取3个字符)
?>

(2) 字符串查找与替换

<?php
// strpos() - 查找字符串首次出现的位置
$position = strpos($str, "PHP");
echo "PHP首次出现在位置: $position";  // 输出6

// str_replace() - 字符串替换
$newStr = str_replace("PHP", "JavaScript", $str);
echo $newStr;  // 输出"Hello JavaScript World"

// strtolower() - 转换为小写
echo strtolower($str);  // 输出"hello php world"

// strtoupper() - 转换为大写
echo strtoupper($str);  // 输出"HELLO PHP WORLD"
?>

(3) 字符串分割与连接

<?php
// explode() - 将字符串分割为数组
$words = explode(" ", $str);  // 按空格分割
print_r($words);  // 输出Array([0]=>Hello [1]=>PHP [2]=>World)

// implode() - 将数组元素连接成字符串
$newStr = implode("-", $words);
echo $newStr;  // 输出"Hello-PHP-World"

// trim() - 去除字符串两端空白字符
$strWithSpace = "  有空格  ";
echo trim($strWithSpace);  // 输出"有空格"
?>

2. 字符串格式化

<?php
// printf() - 格式化输出
$name = "张三";
$age = 25;
printf("姓名: %s, 年龄: %d", $name, $age);  // 输出"姓名: 张三, 年龄: 25"

// sprintf() - 返回格式化字符串
$info = sprintf("姓名: %s, 年龄: %d", $name, $age);
echo $info;

// number_format() - 格式化数字
$number = 1234567.89;
echo number_format($number);        // 输出"1,234,568"
echo number_format($number, 2);     // 输出"1,234,567.89"
echo number_format($number, 2, ",", ".");  // 输出"1.234.567,89"
?>

四、超全局变量

PHP提供了多个超全局变量,它们在脚本的全部作用域中都可用:

1. $_GET

获取通过URL参数传递的数据

<?php
// 假设URL是:http://example.com?name=张三&age=25
echo $_GET["name"];  // 输出"张三"
echo $_GET["age"];   // 输出"25"
?>

2. $_POST

获取通过POST方法提交的表单数据

<?php
// 假设有一个表单用POST方法提交了username和password
$username = $_POST["username"];
$password = $_POST["password"];
?>

3. $_REQUEST

包含$_GET、$_POST和$_COOKIE的内容

<?php
$value = $_REQUEST["key"];  // 可以获取GET或POST方式传递的key值
?>

4. $_SERVER

包含服务器和执行环境信息

<?php
echo $_SERVER["PHP_SELF"];    // 当前执行脚本的文件名
echo $_SERVER["SERVER_NAME"]; // 服务器名称
echo $_SERVER["HTTP_REFERER"]; // 引导用户代理到当前页的前一页的地址
echo $_SERVER["REMOTE_ADDR"]; // 浏览当前页面的用户的IP地址
?>

五、作业练习

  1. 创建一个多维数组存储3个学生的信息(学号、姓名、3门课程成绩),并计算每个学生的平均分
  2. 编写一个函数,接收一个字符串参数,返回该字符串的反转形式(不能使用strrev函数)
  3. 创建一个简单的表单处理页面,包含姓名、邮箱和留言字段,使用$_POST获取并显示提交的数据
  4. 使用数组函数对一组商品价格进行排序,并找出最高价和最低价

下节课预告

  • 文件操作:读写文件
  • 表单处理与验证
  • 错误处理基础
  • 本文作者:菜鬼
  • 本文链接: https://caigui.net/pljcjc--dsk-szyzfcsr.html
  • 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。
文章很赞!支持一下吧 还没有人为TA充电
为TA充电
还没有人为TA充电
0
0
  • 支付宝打赏
    支付宝扫一扫
  • 微信打赏
    微信扫一扫
感谢支持
文章很赞!支持一下吧
关于作者
130
4
0
1
梦想不大,创造神话。

PHP零基础教程-第三课-流程控制与函数基础

上一篇

PHP零基础教程-第五课-文件操作与表单处理

下一篇
评论区
内容为空

这一切,似未曾拥有