<!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基础之 数组(二)的更多相关文章

  1. java基础知识点补充---二维数组

    #java基础知识点补充---二维数组 首先定义一个二维数组 int[][] ns={ {1,2,3,4}, {5,6,7,8}, {9,10,11,12}, {13,14,15,16} }; 实现遍 ...

  2. PHP基础系列(二) PHP数组相关的函数分类整理

    之前写过一篇介绍 PHP字符串函数 的博文,这里写第二篇,本文主要介绍PHP 数组相关的函数: 一.检查数组中是否存在 array_key_exists — 检查给定的键名或索引是否存在于数组中 ar ...

  3. 《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算

    http://www.cnblogs.com/batteryhp/p/5000104.html 第四章 Numpy基础:数组和矢量计算 第一部分:numpy的ndarray:一种多维数组对象 实话说, ...

  4. [.net 面向对象编程基础] (17) 数组与集合

    [.net 面向对象编程基础] (17) 数组与集合 学习了前面的C#三大特性,及接口,抽象类这些相对抽象的东西以后,是不是有点很累的感觉.具体的东西总是容易理解,因此我们在介绍前面抽象概念的时候,总 ...

  5. R语言基础:数组&列表&向量&矩阵&因子&数据框

    R语言基础:数组和列表 数组(array) 一维数据是向量,二维数据是矩阵,数组是向量和矩阵的直接推广,是由三维或三维以上的数据构成的. 数组函数是array(),语法是:array(dadta, d ...

  6. 《利用python进行数据分析》NumPy基础:数组和矢量计算 学习笔记

    一.有关NumPy (一)官方解释 NumPy is the fundamental package for scientific computing with Python. It contains ...

  7. js基础提高(二)

    JavaScript基础提高(二) 上篇写的是JavaScript的历史.基本的数据类型和基本的语法进填的话讲的就深入一些了. js的函数 1.js函数定义的方式 (1)普通方式 语法:functio ...

  8. PHP基础入门(二)【PHP函数基础】

    PHP基础入门(二)--函数基础 了解 PHP基础入门详解(一) 后,给大家分享一下PHP的函数基础. 这部分主要讲的就是: 函数的声明与使用.PHP中变量的作用域.静态变量.函数的参数传递.变量函数 ...

  9. 利用Python进行数据分析——Numpy基础:数组和矢量计算

    利用Python进行数据分析--Numpy基础:数组和矢量计算 ndarry,一个具有矢量运算和复杂广播能力快速节省空间的多维数组 对整组数据进行快速运算的标准数学函数,无需for-loop 用于读写 ...

  10. Go语言基础之数组

    Go语言基础之数组 本文主要介绍数组(array)及它的基本使用. Array(数组) 数组是同一种数据类型元素的集合. 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化 ...

随机推荐

  1. Linux Command Line Basics

    Most of this note comes from the Beginning the Linux Command Line, Second Edition by Sander van Vugt ...

  2. codevs 1063 合并果子//优先队列

    1063 合并果子 2004年NOIP全国联赛普及组  时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石    题目描述 Description 在一个果园里,多多已经将所有的果 ...

  3. 爬虫例子及知识点(scrapy知识点)

    新知识: 新建一个scrapy项目:scrapy startproject xxx(项目名称) 运行一个scrapy项目:scrapy crawl xxx(项目名称) 项目文件说明: 文件说明: • ...

  4. Java 线程池的使用

    转载原文链接: http://www.cnblogs.com/dolphin0520/p/3932921.html 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有 ...

  5. [EmguCV|WinForm] 使用EmguCV內建直方圖工具繪製直方圖(Histogram)-直方圖(Histogram)系列 (1)

    https://dotblogs.com.tw/v6610688/archive/2013/12/20/emgucv_draw_histogram_histogrambox_histogramview ...

  6. hadoop2.6.4运行wordcount

    hadoop用户登录,启动服务: start-dfs.sh && start-yarn.sh 创建输入目录: hadoop df -mkdir /input 把测试文件导入/input ...

  7. js 处理日期 看着比较全,备用

    http://www.cnblogs.com/endora/archive/2012/12/06/endorahe.html js 处理日期 看着比较全,备用

  8. Fresnel Effect

    http://www.3drender.com/glossary/fresneleffect.htm http://kylehalladay.com/all/graphics/2014/02/23/F ...

  9. UITextField限制输入文字

    一.viewDidLoad时监听通知 NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; [center addO ...

  10. Swift学习二

    // 定义枚举方式一 enum Season { // 每个case定义一个实例 case Spring case Summer case Fall case Winter } // 定义枚举方式二 ...