博客列表 >利用php循环遍历及运算法则实现重新组合数组与计算器实例两则

利用php循环遍历及运算法则实现重新组合数组与计算器实例两则

超超多喝水
超超多喝水原创
2021年08月08日 22:46:28689浏览

一、封装一个从数组中取偶数并重新组成数组的函数

方法一:

实例

<?php
//声明一个数组,模拟提供的数组
$arr = [23,3,45,6,78,8,34];
//声明一个空数组,一会儿用来存放新的数组内容
$even = [];
//定义一个封装函数
function even($args)
{       
        //从全局变量获取定义好的控数组
    global $even;
    //用for循环遍历数组
    for($i=0;$i<count($args);$i++)
    {
            //用对2取余的方法对数组里的元素进行偶数的判断
        if($args[$i]%2 == 0)
        {    //重新组装数组为新数组
            array_push($even,$args[$i]);
        }
    }
    //对数组进行输出
    echo '<pre>';
    print_r($even);
}
//调用函数
even($arr);
?>


运行实例 »

点击 "运行实例" 按钮查看在线实例

方法二:

实例

<?php
//声明一个数组,模拟提供的数组
$arr = [23,3,45,6,78,8,34];
//声明一个空数组,一会儿用来存放新的数组内容
$even = [];
//定义一个封装函数
function even($args)
{
        //从全局变量获取定义好的控数组
    global $even;
    //循环遍历数组为元素
    foreach($args as $val)
    {
            //用对2取余的方法对数组里的元素进行偶数的判断
        if($val%2 == 0)
        {
                //重新组装数组为新数组,等同于上面的array_push($even,$args[$i]);
            $even[] = $val;
        }
    }
    //对数组进行输出
    echo '<pre>';
    print_r($even);
}
//调用函数
even($arr);
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

这里需要注意一下,不要想当然的在重新组装数组后,在下面直接print_r($even)把内容输出出来,这里还是在循环中的,如果在if判断里就输出,那么会从开始检测到的第一个符合的值到最后一个符合条件的值,每一个都会输出一遍。


二、使用php循环及运算符制作一个简易计算器

实例

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>计算器</title>
</head>
<body>
    <?php
    //显示除去 E_NOTICE 之外的所有错误信息
    error_reporting(E_ALL & ~E_NOTICE);
    //判断是否点击了提交按钮
    if(isset($_POST["sub"])):
            //判断是否在除法运算或者取余运算中有0作为被除数,这里如果if语句后面没有else,则可以后面直接跟if为true的内容
        if($_POST["opt"] == "÷" && $_POST["num2"] == 0 || $_POST["opt"] == "取余" && $_POST["num2"] == 0) $mess = "<span style='color:red;'>除数不能为0</span>";
    endif;
    ?>
    <div>
        <h1>计算器</h1>
        <!-- form表单action为空默认是当前脚本 -->
        <form action="" method="post">
                <!-- 限定第一个输入框为数字,且必填,且提交后数值默认显示是上次点提交前输入的最后一个数字 -->
            <input type="number" name="num1" required value="<?=$_POST["num1"]?>" id="num1">
            <!-- 制作下拉框 -->
            <select name="opt">
                    <!-- 对运算符进行设置 且提交后默认显示上次运算使用的运算符 -->
                <option value="+" <?=$_POST["opt"] == "+" ? "selected"  : ""?>>+</option>
                <option value="-" <?=$_POST["opt"] == "-" ? "selected" : "" ?>>-</option>
                <option value="×" <?=$_POST["opt"] == "×" ? "selected" : ""?>>×</option>
                <option value="÷" <?=$_POST["opt"] == "÷" ? "selected" : ""?>>÷</option>
                <option value="取余" <?=$_POST["opt"] == "取余" ? "selected" : ""?>>取余</option>
                <option value="幂运算" <?=$_POST["opt"] == "幂运算" ? "selected" : ""?>>幂运算</option>
            </select>
            <!-- 限定第二个输入框为数字,且必填,且提交后数值默认显示是上次点提交前输入的最后一个数字 -->
            <input type="number" name="num2" value="<?=$_POST["num2"]?>" id="num2">
            <!-- 提交按钮 -->
            <input type="submit" name="sub" value="计算">
        </form>
    </div>
    <?php
            //判断是否有报错信息且是否已经点击提交按钮
        if(!$mess && isset($_POST["sub"])):
                //如果是,则根据POST过来的不同运算符,进入switch循环,对POST提交的两个数字进行计算
            switch($_POST["opt"]):
                case "+":
                    $result = $_POST["num1"] + $_POST["num2"];
                    break;
                case "-":
                    $result = $_POST["num1"] - $_POST["num2"];
                    break;
                case "×":
                    $result = $_POST["num1"] * $_POST["num2"];
                    break;
                case "÷":
                    $result = $_POST["num1"] / $_POST["num2"];
                    break;
                case "取余":
                    $result = $_POST["num1"] % $_POST["num2"];
                    break;
                case "幂运算":
                    $result = $_POST["num1"] ** $_POST["num2"];
                    break;
                endswitch;
                //把结果输出的内容进行组装
                $res = "计算结果:{$_POST["num1"]}{$_POST["opt"]}{$_POST["num2"]}={$result}";
                //因为幂运算是一个特殊形式,这里加个判断,如果不是幂运算,则正常输出,是幂运算则单独输出运算内容
                if($_POST["opt"]!="幂运算"):echo "<span style='color:green;'>{$res}</span>";
                else:echo "<span style='color:green;'>计算结果:{$_POST["num1"]}的{$_POST["num2"]}次方={$result}</span>";
                endif;
        else:
                //否则如果有报错信息则输出报错信息
            echo $mess;
        endif;
    ?>
</body>
</html>


运行实例 »

点击 "运行实例" 按钮查看在线实例

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议