/**

* 1、写函数创建长度为10的数组。数组中的元素为递增的奇数。首项为1。

*/

$ary = range(1, 10);

//Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 [9] => 10 )

print_r($ary);

/**

* 2、创建长度为10的数组,数组中的元素为递增的等比数,比值为3。首项为1

*/

function myfun($n){

return pow(3, $n-1);

}

$ary = range(1, 10);

$result = array_map(‘myfun‘,$ary);

echo ‘
‘;

//Array ( [0] => 1 [1] => 3 [2] => 9 [3] => 27 [4] => 81 [5] => 243 [6] => 729 [7] => 2187 [8] => 6561 [9] => 19683 )

print_r($result);

/**

* 3、求数组中最大数所在的下标;

* $arr = array(1,5,67,8,4,3,45,6,887,2);

*/

$arr = array(1,5,67,8,4,3,45,6,887,2);

$max = $arr[0];//假设第一个数是最大的

$index = 0;//记录最大数的key值,即下标

foreach ($arr AS $key=>$val) {

if ($max < $val) {

$max = $val;

$index = $key;

}

}

//最大数是:887,其下标是:8

echo ‘
最大数是:‘.$max . ‘,其下标是:‘ . $index;

/* $mval = max($arr);

echo ‘
‘;

print_r(array_search($mval, $arr)); */

/**

* 4、创建一个长度为10的数组,数组中的元素满足斐波拉齐数列的规律;

*/

$arr = array(1,1);

for ($i=2; $i<10; $i++) {

$arr[] = $arr[$i-1]+$arr[$i-2];

}

echo ‘
‘;

//Array ( [0] => 1 [1] => 1 [2] => 2 [3] => 3 [4] => 5 [5] => 8 [6] => 13 [7] => 21 [8] => 34 [9] => 55 )

print_r($arr);

/**

* 5、计算数组中最大数和最小数的差;

*/

$arr = array(1,5,67,8,4,3,45,6,887,2);

/*系统函数简单实现

*

$minv = min($arr);

$maxv = max($arr);

echo ‘
‘;

echo ‘最大数是:‘ . $maxv .‘,最小数是:‘.$minv.‘,差是:‘.($maxv-$minv);

*/

/*不使用系统函数实现*/

$max = $arr[0];//假设第一个数是最大的

$min = $arr[0];//假设第一个数也是最小的

foreach ($arr AS $key=>$val) {

if ($max < $val) {

$max = $val;

} elseif ($min > $val) {

$min = $val;

}

}

echo ‘
‘;

//最大数是:887,最小数是:1,差是:886

echo ‘最大数是:‘ . $max .‘,最小数是:‘.$min.‘,差是:‘.($max-$min);

/**

* 6、写一个方法,将一个长度超过10的数组最后5项直接截取,不改变顺序直接变为前5项,

* 如{1,2,3,4,5,6,7,8,9,10,11,12}在经过方法后变为:{8,9,10,11,12,1,2,3,4,5,6,7}

*/

function arrayHandel(&$ary, $count = 5) {

if (!(is_array($ary) && count($ary)>10 && count($ary)>$count)) {

return false;

}

$len = count($ary);

while ($count>0) {

$i = $len-1;

$count--;

array_unshift($ary, $ary[$i]);

array_pop($ary);

}

}

$array = array(1,2,3,4,5,6,7,8,9,10,11,12,13);

echo ‘
‘;

arrayHandel($array);

//Array ( [0] => 9 [1] => 10 [2] => 11 [3] => 12 [4] => 13 [5] => 1 [6] => 2 [7] => 3 [8] => 4 [9] => 5 [10] => 6 [11] => 7 [12] => 8 )

print_r($array);

/**

*

* 7、将两个数组连接成一个新数组;

* array_combine($keys, $values) 一个作键,一个作值,但是两个数组个数必须一致,不然会返回false

* array_merge($array1) 覆盖相同的键名

* array_merge_recursive($array1) 不覆盖相同键名,组成以键名组成的数组集合

*

*/

$arr1 = array(‘a‘=>123,‘b‘=>1234);

$arr2 = array(‘os‘=>‘linux‘,‘db‘=>‘mysql‘,‘language‘=>‘php‘,‘server‘=>‘nginx‘,‘b‘=>1256);

echo ‘
‘;

//Array ( [a] => 123 [b] => 1234 [os] => linux [db] => mysql [language] => php [server] => nginx )

print_r($arr1+$arr2);//$arr1会覆盖$arr2中相同键值,运算是从右至左,所以左边的覆盖右边

echo ‘
‘;

//boolean false

var_dump(array_combine($arr1,$arr2));//boolean false

echo ‘
‘;

//Array ( [a] => 123 [b] => 1256 [os] => linux [db] => mysql [language] => php [server] => nginx )

print_r(array_merge($arr1,$arr2));//$arr1和$arr2中的相同的元素被后一个$arr2的覆盖

echo ‘
‘;

//Array ( [a] => 123 [b] => Array ( [0] => 1234 [1] => 1256 ) [os] => linux [db] => mysql [language] => php [server] => nginx )

print_r(array_merge_recursive($arr1,$arr2));

/**

* 数组逆序(不能直接使用rsort函数,不能生成新数组);

*/

$ary = array(‘apple‘,‘juice‘,‘orange‘,‘85‘,‘0‘,‘app‘,‘1‘,‘2‘,‘5‘,‘z‘);

/* rsort($ary);

echo ‘
‘;

print_r($ary); */

for ($i=0;$i

for ($j=$i+1;$j

if($ary[$i]

$temp = $ary[$i];

$ary[$i] = $ary[$j];

$ary[$j] = $temp;

}

}

}

echo ‘
‘;

//Array ( [0] => z [1] => orange [2] => juice [3] => apple [4] => app [5] => 85 [6] => 5 [7] => 2 [8] => 1 [9] => 0 )

print_r($ary);

/**

* 9、在长度为10的升序有序数组中插入一个数字,组成新数组,保证数组顺序(不能直接使用sort)

*/

$arr = range(1, 40, 2);

function insertAry($ary, $val) {

$endAry = array();

$len = count($ary);

$index = 0;

if ($ary[$len-1] < $val) {//若插入数比数组中任意数大

$ary[] = $val;

$endAry = $ary;

return $endAry;

}

while ($index

if ($ary[$index]>=$val){

$endAry[$index++] = $val;

for($i = $index;$i

$endAry[$i] = $ary[$i-1];

}

break;

} else {

$endAry[$index] = $ary[$index];

}

$index++;

}

return $endAry;

}

echo ‘
‘;

//Array ( [0] => 1 [1] => 3 [2] => 5 [3] => 7 [4] => 9 [5] => 11 [6] => 13 [7] => 15 [8] => 17 [9] => 19 [10] => 21 [11] => 23 [12] => 25

//[13] => 27 [14] => 29 [15] => 31 [16] => 33 [17] => 35 [18] => 37 [19] => 39 [20] => 88 )

print_r(insertAry($arr,88));

/**

* 10、将一个无序数组排列成升序数组;(冒泡排序)

*/

$arr = array(888,-9,1,11,5,67,8,4,3,45,6,887,2);

$len = count($arr);

for ($i=0; $i

for ($j=$len-1; $j>$i; $j--) {

if ($arr[$j]

$temp = $arr[$j];

$arr[$j] = $arr[$j-1];

$arr[$j-1] = $temp;

}

}

}

echo ‘
‘;

//Array ( [0] => -9 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 8 [8] => 11 [9] => 45 [10] => 67 [11] => 887 [12] => 888 )

print_r($arr);

/*********选择排序************/

$arr = array(888,-9,1,11,5,67,8,4,3,45,6,887,2);

for ($i=0; $i

for ($j=$i+1; $j

if ($arr[$j]

$temp = $arr[$j];

$arr[$j] = $arr[$i];

$arr[$i] = $temp;

}

}

}

echo ‘
‘;

//Array ( [0] => -9 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 8 [8] => 11 [9] => 45 [10] => 67 [11] => 887 [12] => 888 )

print_r($arr);

/**

* 11、对有序数组进行洗牌操作;(不能直接使用shuffle函数)

*/

$arr = range(1, 40, 2);

echo ‘
‘;

echo ‘
$arr打乱前:‘;

//$arr打乱前:Array ( [0] => 1 [1] => 3 [2] => 5 [3] => 7 [4] => 9 [5] => 11 [6] => 13 [7] => 15 [8] => 17 [9] => 19 [10] => 21 [11] => 23

//[12] => 25 [13] => 27 [14] => 29 [15] => 31 [16] => 33 [17] => 35 [18] => 37 [19] => 39 )

print_r($arr);

function shuffleDemo($arr) {

$resultAry = array();

$len = count($arr);

while ($len>0) {

$index = rand(0, $len-1);

$resultAry[] = $arr[$index];

array_splice($arr, $index,1);

$len--;

}

return $resultAry;

}

echo ‘
‘;

echo ‘
$arr打乱后:‘;

//$arr打乱后:Array ( [0] => 3 [1] => 33 [2] => 11 [3] => 15 [4] => 5 [5] => 39 [6] => 1 [7] => 25 [8] => 35 [9] => 29 [10] => 13 [11] => 27

//[12] => 23 [13] => 7 [14] => 37 [15] => 19 [16] => 9 [17] => 17 [18] => 31 [19] => 21 )

print_r(shuffleDemo($arr));

/**

* 12、删除数组中指定位置的元素;(参考unset函数)

*/

function deleteAryElement(&$arr, $index){

if (!(is_array($arr) && count($arr)>$index)) {

return false;

}

unset($arr[$index]);

}

$arr = array(888,-9,1,11,5,67,8,4,3,45,6,887,2);

deleteAryElement($arr,2);

echo ‘
‘;

//Array ( [0] => 888 [1] => -9 [3] => 11 [4] => 5 [5] => 67 [6] => 8 [7] => 4 [8] => 3 [9] => 45 [10] => 6 [11] => 887 [12] => 2 )

print_r($arr);

/**

* 13、将数组中素数删除组成新数组

*/

function filtFun($val) {//自定义过滤素数函数

$flag = true;//判断是否是素数

if (is_int($val)) {

if ($val<=0) {

$flag = false;

}

for ($i=$val-1;$i>1;$i--) {

if ($val%$i==0) {

$flag = false;

break;

}

}

} else {

$flag = false;

}

return !$flag;

}

$arr = array(888,-9,1,11,5,67,8,4,3,45,6,887,2,‘a‘);

$rary = array_filter($arr, ‘filtFun‘);

echo ‘
‘;

//Array ( [0] => 888 [1] => -9 [6] => 8 [7] => 4 [9] => 45 [10] => 6 [13] => a )

print_r($rary);

/**

* 14、写函数检查数组中是否存在某个元素(不能直接使用in_array)

*/

function exsitEle($arr, $value) {

if (!(is_array($arr) && count($arr)>0)) {

return false;

}

foreach ($arr AS $key=>$val) {

if ($val==$value) {

return true;

}

}

return false;

}

$arr = array(888,-9,1,11,5,67,8,4,3,45,6,887,2,‘a‘,array(‘a‘=>14,‘b‘=>48));

//boolean true

var_dump(exsitEle($arr, array(‘a‘=>14,‘b‘=>48)));

/**

* 15、写函数,向数组最后追加一个元素(不能直接使用array_push)

*/

$arr = array(888,-9,1,11,5,67,8,4,3,45,6,887,2,‘a‘,array(‘a‘=>14,‘b‘=>48));

$arr[] = ‘abcd‘;

echo ‘
‘;

//Array ( [0] => 888 [1] => -9 [2] => 1 [3] => 11 [4] => 5 [5] => 67 [6] => 8 [7] => 4 [8] => 3 [9] => 45 [10] => 6

//[11] => 887 [12] => 2 [13] => a [14] => Array ( [a] => 14 [b] => 48 ) [15] => abcd )

print_r($arr);

/**

* 16、写函数,求数组中所有元素之和(不能直接使用array_sum)

*/

$arr = array(888,-9,1,11,5,67,8,4,3,45,6,-102);

function countAry($arr) {

if (!(is_array($arr) && count($arr)>0)) {

return false;

}

$sum = 0;

foreach ($arr AS $key=>$val) {

$sum += $val;

}

return $sum;

}

echo ‘
‘;

//927

print_r(countAry($arr));

php数组功能非常强大,自己对php数组的练习学习。以后也可以在此加深印象,巩固学习!

原文:http://www.cnblogs.com/age0420/p/3937742.html

php数组填空题,php数组练习十六道题相关推荐

  1. php数组练习十六道题

    <?php /*** 1.写函数创建长度为10的数组.数组中的元素为递增的奇数.首项为1.*/ $ary = range(1, 10); //Array ( [0] => 1 [1] =& ...

  2. 【100题】第三十六 比赛淘汰问题(谷歌笔试)

    一,题目:(谷歌笔试) n支队伍比赛,分别编号为0,1,2--n-1,已知它们之间的实力对比关系,存储在一个二维数组w[n][n]中,w[i][j] 的值代表编号为i,j的队伍中更强的一支.所以w[i ...

  3. codeforces水题100道 第十六题 Codeforces Round #164 (Div. 2) A. Games (brute force)

    题目链接:http://www.codeforces.com/problemset/problem/268/A 题意:足球比赛中如果主场球队的主场球衣和客队的客队球衣颜色一样,那么要求主队穿上他们的可 ...

  4. 十二届蓝桥杯省赛B组C++解析(填空题部分)

    十二届蓝桥杯省赛B组C++解析(填空题部分) 目录 十二届蓝桥杯省赛B组C++解析(填空题部分) A:空间 B:卡片 C:直线 D:货物摆放 E:路径 A:空间 该题是一道计算机基础原理题,这里需要了 ...

  5. Java_数组练习答案_Java数组练习题带答案.doc

    <Java数组练习题带答案.doc>由会员分享,可在线阅读,更多相关<Java数组练习题带答案.doc(11页珍藏版)>请在人人文库网上搜索. 1.一 填空题1) 数组的元素通 ...

  6. 2012二级c语言上机,2012全国计算机等级考试-二级C语言-上机考试-填空题-分类总结...

    <2012全国计算机等级考试-二级C语言-上机考试-填空题-分类总结>由会员分享,可在线阅读,更多相关<2012全国计算机等级考试-二级C语言-上机考试-填空题-分类总结(3页珍藏版 ...

  7. java数组中包含元素_Java中声明数组时,包括数组的名字、数组中包含的元素的 。 (5.0分)_学小易找答案...

    [简答题]3,单冲压片机的安装程序? [判断题]continue语句只用于循环语句中,它起到终止本次循环,返回到循环开始处的作用. (5.0分) [判断题]default在switch选择结构中是必需 ...

  8. java如何遍历字符串数组_java遍历字符串数组

    java中关于变量.数组的综合练习题_IT/计算机_专业资料.java中关于变量.数组的综合练习题,附有答案. 一.多项选择题(共1道小题,共5.0分) 1. 下列变量的...... Java数组练习 ...

  9. 二、全国计算机三级数据库考试——理论知识总结(填空题)

    上一篇博客:一.全国计算机三级数据库考试--理论知识总结(选择题)_简时刻的博客-CSDN博客 说明:红色字为三级数据库考试中需要输入的答案,填空题在考试中一共15道题,一题2分,一共30分. IDE ...

最新文章

  1. java 矩阵_(JAVA)计算机图形学与矩阵
  2. 如何改变X:\Users\XXX的用户名称
  3. aspnetcore 应用 接入Keycloak快速上手指南
  4. 进程,线程和协程 并行与并发
  5. 语言阿克曼函数_函数式的动态规划
  6. 洛谷——P1867 【Mc生存】经验值
  7. 利用Word2010在博客园发布文章入门
  8. 使用Nexus3搭建Maven私服+上传第三方jar包到本地maven仓库
  9. 项目管理之我见:程序开发步骤
  10. linux高级编程进程,linux高级编程(五、进程)
  11. android 刷路由器,荣耀立方WS860s路由器完整刷机包怎么使用?荣耀立方刷机图文教程...
  12. 在vue中使用echarts实现飞机航线 水滴图 词云图
  13. warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  14. 像素、英寸、厘米的换算
  15. 动手学树莓派第1章:先唠叨两句
  16. 算法导论------渐近记号Θ、Ο、o、Ω、ω详解
  17. 大数据量分页存储过程效率测试附代码(转http://www.cnblogs.com/lli0077/archive/2008/09/03/1282862.html)...
  18. ArrayList 和 Vector 的区别是什么?
  19. itextsharp 获取文本_利用iTextSharp提取PDF文件中的文本内容
  20. 六、DOM(上) - 章节课后练习题及答案

热门文章

  1. 经典兔子问题python视频_【Python】【demo实验14】【练习实例】【斐波那契数列】【经典兔子生小兔子问题】...
  2. BAT careers
  3. IDEA下载与安装(IDEA2021.2.2版本)
  4. 给button加上手形
  5. 「BUAA SE Pair Programming Work」软工结对编程博客
  6. 计算机应用基础与实训教程word2003文字处理软件 教学目标,计算机应用基础与实训教程第3章.ppt...
  7. MySQL查询一个表的前25%的数据
  8. 简易QQ列表展开收缩
  9. 混淆工具JavaScript obfuscator中文帮助文档
  10. Bootstrap快速入门(含旅游网案例)