PHP基础之 数组(二)
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
<link rel="stylesheet" type="text/css" href="Basedemo/DemoPage.css"> </head> <body>
<div id="main">
<div id="wrapper"> <h3>输入学生成绩以*隔开,计算学生的平均成绩,总成绩</h3>
<div id="content">
<?php
//关闭Notic级别的错误:
//方法一:在对象前加@符
//方法二:在php.int文件中修改:error_reporting = E_All & ~E_NOTIE
//方法三:在页面中添加:error_reporting(E_All ^ E_NOTICE);
//$tScore=@$_REQUEST["txtScore"];
error_reporting(E_ALL ^ E_NOTICE);
$tScore=$_REQUEST["txtScore"];
if($tScore!=null&&$tScore!="")
{
$score=explode("*",$tScore);//(8,8,8,7,5) $sum=0;
foreach ($score as $key => $value) {
$sum+=$value;
} //平均成绩
$avg= $sum/count($score);//7.2 }
?>
<form action="phplesson5_array2.php" mehtod="GET">
<span>请输入学生成绩:</span><input type="text" name="txtScore" value="<?php echo $tScore;?>"/>
<input type="submit" value="计算"/>
</form>
</div> <h3>字符串分割和精确小数位</h3>
<div id="content">
<?php
//获取成绩
print_r($tScore);//8*8*8*7*5 echo "<br/><span>总成绩:</span>";
echo $sum."<br/>";// echo "<span>平均成绩:</span>";
echo round($avg,2);//round四舍五入,精确到小数点两位
?>
</div> <h3>数组的排序</h3>
<div id="content">
<?php
$arr1 = array(9,8,2,7,-5,-4,-1,11,20);
//=====内部排序法=====
//冒泡排序法
//将数据升序排序
echo "排序前:";
print_r($arr1);
echo "<br/>"; //封装一个冒泡排序函数(参数值传递)
function bubbleSort($arr)
{
for ($i=0; $i <count($arr) ; $i++)
{
for ($j=0; $j <count($arr)-1-$i ; $j++) {
if($arr[$j]>$arr[$j+1])//如果前面的数大于后面的数,则交换位置
{
$temp=$arr[$j];
$arr[$j]=$arr[$j+1];
$arr[$j+1]=$temp;
}
}
}
return $arr;
} //冒泡排序函数(参数引用传递)
function bubbleSort2(&$arr)
{
for ($i=0; $i <count($arr)-1 ; $i++)
{
for ($j=0; $j <count($arr)-1-$i ; $j++) {
if($arr[$j]>$arr[$j+1])//如果前面的数大于后面的数,则交换位置
{
$temp=$arr[$j];
$arr[$j]=$arr[$j+1];
$arr[$j+1]=$temp;
}
}
}
return $arr;
} // $arr2 = bubbleSort($arr1);
// bubbleSort2($arr1); // echo "冒泡排序后:";
// print_r($arr2);
// print_r($arr1); //选择排序法:假设一个元素为最小值,每次循环与其它元素比较,获得最小值,与假设的最小值交换
function SelectSort(&$arr)
{
for ($i=0; $i < count($arr)-1; $i++) {
//假设最小值是索引为$i的无素
$minVal = $arr[$i];
$minIndex = $i; //每次循环排除之前找出来的最小值从剩余的元素中找出一个最小值
for ($j=$i+1; $j <count($arr); $j++) {
if($minVal>$arr[$j])
{
$minVal = $arr[$j];
$minIndex = $j;
}
}
$temp = $arr[$i];
$arr[$i]=$arr[$minIndex];
$arr[$minIndex] = $temp;
}
} SelectSort($arr1); // echo "选择排序后:";
// print_r($arr1); //插入排序法(升序)
function insertSort(&$arr)
{
//先默认索引为0的元素是有序的
for ($i=1; $i < count($arr); $i++) {
//准备要插入的元素和索引
$insertVal= $arr[$i];
$insertIndex = $i-1;
while ( $insertVal<$arr[$insertIndex]&&$insertIndex>=0) {
$arr[$insertIndex+1] = $arr[$insertIndex];
$insertIndex--;
}
$arr[$insertIndex+1] = $insertVal;
}
} insertSort($arr);
echo "插入排序后:";
print_r($arr1); //快速排序法(递归 占用内存高 略)
//=====外部排序法=====:数据量大,借助外部文件排序
//====交换式排序法====:冒泡排序法和快速排序法 ?>
</div> <h3>数组元素的查找</h3>
<div id="content">
<?php
//1.顺序查:foreach 或 for 遍历数组匹配查找的元素 //2.二分查找:(前,提是数组必须是有序的)
//先找到数组中间数,比较要查找的数与中间数的大小
//如果大于中间数,则向后找,否则向前找,直到找到 function BinarySearch($arr,$findVal,$leftIndex,$rightIndex)
{
if($rightIndex<$leftIndex) return "未找到"; //找到中间数的索引
$middleIndex = round(($rightIndex+$leftIndex)/2);
if($findVal>$arr[$middleIndex]){//向后找
BinarySearch($arr,$findVal,$middleIndex+1,$rightIndex);
}
else if ($findVal<$arr[$middleIndex]) {//向前找
BinarySearch($arr,$findVal,$leftIndex,$middleIndex-1);
}
else{//如果等于中间值
return "找到了:".$arr[$middleIndex]."索引为:".$middleIndex;
} } $arr4= array(1,8,10,58);
$result = BinarySearch($arr4,8,0,count($arr3)-1);
echo $result; ?>
</div> <h3>二维数组</h3>
<div id="content">
<?php
//二维数组定义:
$arr5 = array(array(1,2,3),array(4,5,6),array(34));
$arr5[3] = array(22,55);
print_r($arr5); //二维数组的遍历:
echo "<p>遍历二维数组:</p>";
for ($i=0; $i <count($arr5); $i++) {
$items="";
foreach ($arr5[$i] as $value) {
$items.=$value.", ";
}
echo $items."<br/>";
}
?>
</div> </div>
</div>
<div id="footer"><div class="tri"></div><h1>Write some things for your project!</h1></div> </body>
</html>
PHP基础之 数组(二)的更多相关文章
- java基础知识点补充---二维数组
#java基础知识点补充---二维数组 首先定义一个二维数组 int[][] ns={ {1,2,3,4}, {5,6,7,8}, {9,10,11,12}, {13,14,15,16} }; 实现遍 ...
- PHP基础系列(二) PHP数组相关的函数分类整理
之前写过一篇介绍 PHP字符串函数 的博文,这里写第二篇,本文主要介绍PHP 数组相关的函数: 一.检查数组中是否存在 array_key_exists — 检查给定的键名或索引是否存在于数组中 ar ...
- 《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算
http://www.cnblogs.com/batteryhp/p/5000104.html 第四章 Numpy基础:数组和矢量计算 第一部分:numpy的ndarray:一种多维数组对象 实话说, ...
- [.net 面向对象编程基础] (17) 数组与集合
[.net 面向对象编程基础] (17) 数组与集合 学习了前面的C#三大特性,及接口,抽象类这些相对抽象的东西以后,是不是有点很累的感觉.具体的东西总是容易理解,因此我们在介绍前面抽象概念的时候,总 ...
- R语言基础:数组&列表&向量&矩阵&因子&数据框
R语言基础:数组和列表 数组(array) 一维数据是向量,二维数据是矩阵,数组是向量和矩阵的直接推广,是由三维或三维以上的数据构成的. 数组函数是array(),语法是:array(dadta, d ...
- 《利用python进行数据分析》NumPy基础:数组和矢量计算 学习笔记
一.有关NumPy (一)官方解释 NumPy is the fundamental package for scientific computing with Python. It contains ...
- js基础提高(二)
JavaScript基础提高(二) 上篇写的是JavaScript的历史.基本的数据类型和基本的语法进填的话讲的就深入一些了. js的函数 1.js函数定义的方式 (1)普通方式 语法:functio ...
- PHP基础入门(二)【PHP函数基础】
PHP基础入门(二)--函数基础 了解 PHP基础入门详解(一) 后,给大家分享一下PHP的函数基础. 这部分主要讲的就是: 函数的声明与使用.PHP中变量的作用域.静态变量.函数的参数传递.变量函数 ...
- 利用Python进行数据分析——Numpy基础:数组和矢量计算
利用Python进行数据分析--Numpy基础:数组和矢量计算 ndarry,一个具有矢量运算和复杂广播能力快速节省空间的多维数组 对整组数据进行快速运算的标准数学函数,无需for-loop 用于读写 ...
- Go语言基础之数组
Go语言基础之数组 本文主要介绍数组(array)及它的基本使用. Array(数组) 数组是同一种数据类型元素的集合. 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化 ...
随机推荐
- iOS @property的默认属性
我是一个比较懒的人,很多情况下@property都不喜欢加属性…所以必须了解默认情况下哪些是已经有的,哪些在需要时是必须要加的. 原文链接:http://blog.sina.com.cn/s/blog ...
- 【转载】MFC键盘响应
转载自:传送门 一:首先介绍键盘消息 系统消息: ALT,F1,--F24等,是由系统内部处理的,程序本身就存在,比如F1是帮助键. WM_SYSKEYDOWN WM_SYSKEYUP WM_SYSC ...
- django-redis和redis-py
项目之前使用memcache做缓存,现在转到redis,改写几个语句的事情,然后就这种我把django-redis和py-redis搞混了,记录一下. django默认使用memcache做缓存,这里 ...
- Beta版本——项目测试
前端测试 一.测试用例(tutor_distribution_0001) 测试内容 获取下拉框的输入测试 测试代码 $("#sub-confirm").click(function ...
- python字符编码(二)
一.什么是字符编码 计算机要想工作必须通电,也就是说‘电’驱使计算机干活,而‘电’的特性,就是高低电压(高低压即二进制数1,低电压即二进制数0),也就是说计算机只认识数字 编程的目的是让计算机干活,而 ...
- HBase基础和伪分布式安装配置
一.HBase(NoSQL)的数据模型 1.1 表(table),是存储管理数据的. 1.2 行键(row key),类似于MySQL中的主键,行键是HBase表天然自带的,创建表时不需要指定 1.3 ...
- wcf第2步之服务端标准配置文件
服务端app.config <?xml version="1.0" encoding="utf-8" ?><configuration> ...
- WinForm------TreeList修改节点图标和按钮样式
转载: https://documentation.devexpress.com/#WindowsForms/DevExpressXtraTreeListTreeList_CustomDrawNode ...
- 处理字符串-String类和正则表达式
---基本元字符 . [] | () ---限定元字符 +至少匹配一个 *匹配0个或任意多个 ?匹配0个或1个(默认是贪心的) 当?在(*,+,?,{n},{ ...
- zabbix搭建
首先创建zabbix组和用户 groupadd zabbix useradd -g zabbix zabbix mkdir -p /app/local/zabbix#然后创建zabbix编译安装目录 ...