批改状态:合格
老师批语:两项作业尽量分开
<?php
/*
* 1.给定一个数组$arr = [23,3,45,6,78,8,34],筛选其偶数成员组成新的数组返回,请封装函数。
* 2. 尝试实现简单的计算器功能,语言不限制。
*
*/
$arr = [23,3,45,6,78,8,34];
$newA=[];
$i=0;
//while 循环
while(count($arr) > $i){
if($arr[$i]%2 == 0) $newA[]=$arr[$i]; //取模
$i++;
}
print_r($newA);
//do while 循环
$arr = [23,3,45,6,78,8,34];
$newA=[];
$b=0;
do{
if($arr[$b]%2 == 0) $newA[]=$arr[$b];
$b++;
}while($b<count($arr));
print_r($newA);
//foreach 循环
$newA=[];
$arr = [23,3,45,6,78,8,34];
foreach ($arr as $k=>$v){
if($v%2 == 0) $newA[]=$v; //取模
// gettype($v/2) == 'integer'?$newA[]=$v:'';
// if(gettype($v/2) != 'integer') unset($arr[$k]);
// if(gettype($v/2) == 'integer') $newA[]=$v;
}
print_r($newA);
//print_r($arr);
//数组方法array_walk 调用匿名幻术 引用传值 保存数据
$arr = [23,3,45,6,78,8,34];
$newA=[];
$callback = function($v,$k) use (&$newA,&$arr){
if(gettype($v/2) != 'integer') unset($arr[$k]); //获取运算之后的数据类型 然后判断
if(gettype($v/2) == 'integer') $newA[]=$v;
};
array_walk($arr,$callback);
print_r($newA);
print_r($arr);
die;
?>
<!--jquery写计算器 未完成 0不能做除数 .不能在之前带点的数字之后 运算时候运算字符串转换成运算也难
%前面必须跟数字 整形或者浮点型 这一些列的判断 整理不好
PHP版本的 3个input 等于号提交的相对简单就没写-->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Layui</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="./layui/css/layui.css" media="all">
<!-- 注意:如果你直接复制所有代码到本地,上述css路径需要改成你本地的 -->
</head>
<body>
<div class="layui-main">
<div class="layui-form-item">
<div class="layui-input-inline">
<input name="password" disabled readonly autocomplete="off" class="layui-input layui-disabled text">
</div>
</div>
<div class="layui-btn-container">
<button type="button" class="layui-btn">clear</button>
<button type="button" class="layui-btn">delete</button>
<button type="button" class="layui-btn">%</button>
</div>
<div class="layui-btn-container">
<button type="button" class="layui-btn">1</button>
<button type="button" class="layui-btn">2</button>
<button type="button" class="layui-btn">3</button>
<button type="button" class="layui-btn">+</button>
</div>
<div class="layui-btn-container">
<button type="button" class="layui-btn">4</button>
<button type="button" class="layui-btn">5</button>
<button type="button" class="layui-btn">6</button>
<button type="button" class="layui-btn">-</button>
</div>
<div class="layui-btn-container">
<button type="button" class="layui-btn">7</button>
<button type="button" class="layui-btn">8</button>
<button type="button" class="layui-btn">9</button>
<button type="button" class="layui-btn">*</button>
</div>
<div class="layui-btn-container">
<button type="button" class="layui-btn">0</button>
<button type="button" class="layui-btn">.</button>
<button type="button" class="layui-btn">=</button>
<button type="button" class="layui-btn">/</button>
</div>
</div>
<script src="http://libs.baidu.com/jquery/1.7.2/jquery.min.js"></script>
<script src="./layui/layui.js" charset="utf-8"></script>
<!-- 注意:如果你直接复制所有代码到本地,上述 JS 路径需要改成你本地的 -->
<script>
var strs=new Array(),nums=new Array(),jsu=new Array();
$('button').click(function () {
var _this = $(this),val_=_this.html(),_text = $('.text').val();
let tmp_str = '';
for (let i =0;i<strs.length;i++){
tmp_str+=nums[i] + strs[i];
}
let tmp_ = _text.replace(tmp_str,'');
if(!isNaN(val_)){
if(tmp_.substring(0,1) - 0 > 0 || tmp_.indexOf('.') >= 0 || tmp_ ==''){
$('.text').val(_text + val_);
}
}else{
let sf = '+-*/';
switch (val_) {
case '%':
if(tmp_ - 0 > 0) {
$('.text').val(_text + val_);
}else{
if(tmp_.replace('%','') - 0 >0){
$('.text').val(_text + val_);
}
}
break;
case 'clear':
$('.text').val('');
break;
case 'delete':
let ex = _text.substring(0,_text.length - 1);
$('.text').val(ex);
break;
case '=':
for (let i =0;i<strs.length;i++){
if(strs[i] == '*'){
nums[i+1] = nums[i] * nums[i+1];
nums[i] = 0;
strs[i] = '+';
}
if(strs[i] == '/'){
nums[i+1] = nums[i] / nums[i+1];
nums[i] = 0;
strs[i] = '+';
}
}
let sum_ =0;
for(let i =0;i<strs.length;i++){
if(strs[i] == '+'){
nums[i+1] = nums[i] + nums[i+1];
}
if(strs[i] == '-'){
nums[i+1] = nums[i] - nums[i+1];
}
if(i == strs.length){
sum_ = nums[i]
}
}
alert(sum_);
break;
default:
if(val_ == '.' && tmp_.indexOf('.') < 0 ){
$('.text').val(_text + val_);
}
if(tmp_ - 0 > 0){
if(sf.indexOf(val_) >= 0){
nums.push(tmp_);
strs.push(val_);
$('.text').val(_text + val_);
}
}
}
}
})
</script>
</body>
</html>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号