首頁 後端開發 php教程 第4章 数据处理-php数组的处理-郑阿奇_PHP教程

第4章 数据处理-php数组的处理-郑阿奇_PHP教程

Jul 21, 2016 pm 03:26 PM
函數 初始化 處理 建和 資料處理 陣列

1.数组的处理:
1.1 数组的创建和初始化:
1.arrary()函数创建数组,默认情况下0元素是数组的第一个元素,
count()和sizeof()函数获得数据元素的个数
2.使用变量建立数组
compact()在当前的符号表中查找该变量名并将它添加到输出的数组中,变量名成为键名而变量的内容成为该键的值.

复制代码 代码如下:

$num=10;
$str="string";
$array=array(1,2,3);
$newarray=compact("num","str","array");
print_r($newarray);
/*结果
array([num]=10 [str]=>string [array]=>array([0]=>1 [1]=>2 [2]=>3))
*/
?>

extract() 将数组中的单元转为变量
复制代码 代码如下:

$array=array("key1"=>1,"key2"=2,"key3"=3);
extract($array);
echo "$key1 $key2 $key3";//输出1 2 3
?>

3.使用两个数组创建一个数组
复制代码 代码如下:

array_combine(array $keys, array $values)
$a=array('green','red','yellow');
$b=array(' volcado','apple','banana');
$c=array_combine($a,$b);
print_r($c);
?>

4.建立指定范围数组
range()
5.自动建立数组
1.2 键名和值的操作
本小节只讲常用的
。检查数组是否存在某个键名和值可以使用。array_key_exists()和in_arrary函数,isset()检查数组中的键名,当键名为NULL时,isset()返回           false,而array_key_exists()返回true.
。array_search()函数用于检查数组的键值是否存在,不存在返回NULL。
。key()函数可以取得数组当前单元的键名.
。list()函数,将数组中值赋给指定的变量。在数组遍历中非常有用。
$arr=array("红色","蓝色","白色");
list($red,$blue,$white)=$arr;
echo $red; //红色
echo $blue; //蓝色
echo $white; // 白色
。array_fill()和array_fill_keys()可以用给定的值班填充数组的值和键名
。array_filp()可以交换数组中的键名和值,另外如果交换数组中有相同的值,则相同的值转换为键名后,值保留最后一个
。array_keys()和array_values()函数可以取得数组中的键名和值,并保存到一个新的数组中。
。array_splice(arry $input,int $offset[,int $length[,array $replacement]])将数组中的一个或多个单元删除并用其它值代替。
。array_unique(),可以移除数组中的重复的值,返回一个新数组,并不会破坏原有的数组。
1.3 数组的遍历与输出
1.使用while 循环访问数组
应用while、list()、each()函数对数组遍历
2. for循环访问数组
3.使用foreach循环访问数组
复制代码 代码如下:

$color=array("a"=>"red","blue","white");
foreach($color as $value)
{
echo $value."
";//输出数组的值
}
foreach($color as $key=>$value)
{
echo $key."=>".$value."
";//输出数组的键名和值
}
?>

例4.1 在页面生成品个文本框,用户输入学生成绩,提交表单后输出其中分数小于60分的值,并计算平均成绩后输出。
复制代码 代码如下:

echo "
"; //新建表单
for($i=1;$i{
//文本框的名字是数组名
echo "学生".$i."的成绩:
";
}
echo ""; //提交按钮
echo "
";
if(isset($_POST['bt'])) //检查提交按钮是否按下
{
$sum=0; //总成绩初始化为0
$k=0;
$stu=$_POST['stu']; //取得所有文本框的值并赋予数组$stu
$num=count($stu); //计算数组$stu元素个数
echo "您输入的成绩有:
";
foreach($stu as $score) //使用foreach循环遍历数组$stu
{
echo $score."
"; //输出接收的值
$sum=$sum+$score; //计算总成绩
if($score{
$sco[$k]=$score; //将分数小于60的值赋给数组$sco
$k++; //数组$sco的键名索引加1
}
}
echo "
低于60分的成绩有:
";
for($k=0;$kecho $sco[$k]."
";
$average=$sum/$num; //计算平均成绩
echo "
平均分为:$average"; //输出平均成绩
}
?>

1.4 数组的排序
1.升序排序 。sort(array $array[,int $sort_flags])
注意:在对含有混合类型值的排序时要小尽,因为可能会产生错误。
asort()也可升序排序,是对数组的值进行排序,但它排序后的数组还保持键名和值之间的关联。
Ksort()对数组的键名排序,排序后键名和值之间的关联不改变。
2.降序排序。 rsort()、arsort()、krsort()
3.多维数组的排序。
4.对数组重新排序。
。shuffle()函数.作用将数组用随机的顺序排列,并删除原有的键名
。array_reverse()函数.将一个数组按相反顺序排序.
5.自然排序
。natsort().对大小写敏感
1.5其它操作
1. 合并数组
array_merge($array1,$array2).合并后将一维数以后的数组都当做一个单元返回。array_merge_recusive()可以在保持现有数组结构下对数组进行合并。
2. 数组的栈操作.
出栈: array_pop($arr);
入栈: array_push($arr,var);
3.取得数组当前单元
1. current()函数能够获取数组内部指针指向的单元的值,但不移动数组的内部指针。
2. next($arr),将指针移到下一个单元。
3. end($arr)将指针移到尾部。
4.数组计算
count()、sizeof()计算数组中的元素个数
array_count_values()函数可以计算数组中的一个值出现的次数
例:4.2 处理表格数据
接收用户输入的学生学事情、姓名、成绩等信息,将接收到的信息存入数组并按照成绩升序排序。之后再以表格输出。.
复制代码 代码如下:








for($i=0;$i{?>





}?>

学号
姓名
成绩




注意:学号值不能重复



if(isset($_POST['bt_stu'])) //判断按钮是否按下
{
$XH=$_POST['XH']; //接收所有学号的值存入数组$XH
$XM=$_POST['XM']; //接收所有姓名的值存入数组$XM
$CJ=$_POST['CJ']; //接收所有成绩的值存入数组$CJ
array_multisort($CJ,$XH,$XM); //对以上三个数组排序,$CJ为首要数组
for($i=0;$i$sum[$i]=array($XH[$i],$XM[$i],$CJ[$i]); //将三个数组的值组成一个二维数组$sum
echo "
排序后成绩表如下:
";
//表格的首部
echo "";
foreach($sum as $value) //使用foreach循环遍历数组$sum
{
list($stu_number,$stu_name,$stu_score)=$value; //使用list()函数将数组中的值赋给变量
//输出表格内容
echo "";
}
echo "
学号 姓名 成绩
$stu_number $stu_name $stu_score

"; //表格尾部
reset($sum); //重置$sum数组的指针
while(list($key,$value)=each($sum)) //使用while循环遍历数组
{
list($stu_number,$stu_name,$stu_score)=$value;
if($stu_number=="081101") //查询是否有学号为081101的值
{
echo "
";
echo $stu_number."的姓名为:".$stu_name.",";
echo "成绩为:".$stu_score;
break; //找到则结束循环
}
}
}
?>

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/323896.htmlTechArticle1.数组的处理: 1.1 数组的创建和初始化: 1.arrary()函数创建数组,默认情况下0元素是数组的第一个元素, count()和sizeof()函数获得数据元素的...
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Golang如何提升資料處理效率? Golang如何提升資料處理效率? May 08, 2024 pm 06:03 PM

Golang如何提升資料處理效率?

excel函數公式大全 excel函數公式大全 May 07, 2024 pm 12:04 PM

excel函數公式大全

PHP 陣列鍵值翻轉:不同方法的效能比較分析 PHP 陣列鍵值翻轉:不同方法的效能比較分析 May 03, 2024 pm 09:03 PM

PHP 陣列鍵值翻轉:不同方法的效能比較分析

Laravel 和 CodeIgniter 中資料處理能力的比較如何? Laravel 和 CodeIgniter 中資料處理能力的比較如何? Jun 01, 2024 pm 01:34 PM

Laravel 和 CodeIgniter 中資料處理能力的比較如何?

PHP數組深度複製的藝術:使用不同方法完美複製 PHP數組深度複製的藝術:使用不同方法完美複製 May 01, 2024 pm 12:30 PM

PHP數組深度複製的藝術:使用不同方法完美複製

深度複製PHP數組的最佳實踐:探索高效的方法 深度複製PHP數組的最佳實踐:探索高效的方法 Apr 30, 2024 pm 03:42 PM

深度複製PHP數組的最佳實踐:探索高效的方法

PHP 數組分組函數在資料整理的應用 PHP 數組分組函數在資料整理的應用 May 04, 2024 pm 01:03 PM

PHP 數組分組函數在資料整理的應用

C++ 函式異常進階:客製化錯誤處理 C++ 函式異常進階:客製化錯誤處理 May 01, 2024 pm 06:39 PM

C++ 函式異常進階:客製化錯誤處理

See all articles