当前位置: 首页 > 编程日记 > 正文

PHP-----PHP程序设计基础教程----第四章数组

4.1 初识数组

4.1.1 什么是数组

数组是一个可以存储一组或者一系列数值的变量。在PHP中,数组中的元素分两部分,分别为键(Key)和值(Value)。其中,“键”为元素的识别名称,也被称为数组下标,“值”为元素的内容。“键”和“值”存在一种对应关系,称为映射。

1、索引数组

下标为整数的数组,即数组的“键”为整数,仅仅指示元素在数组中的位置,不表示对应值的含义

2、关联数组

下标为字符串的数组,即数组的“键”为字符串,显示时,以元素的添加顺序有关,与下标顺序无关

3、混合数组

数组的“键”既有整数,也有字符串的数组

4.1.2 数组的定义

1、使用赋值方式定义数组

<?php
//**********定义索引数组**********////方式1:$arr1[0]="欧阳华夏";//姓名$arr1[1]=25;//年龄$arr1[2]="男";//性别$arr1[3]=true;//是否单身echo "<pre>";print_r($arr1);echo "</pre>";/*输出结果:Array([0] => 欧阳华夏[1] => 25[2] => 男[3] => 1)*///方式2:$arr2[]="欧阳华夏";//姓名$arr2[]=25;//年龄$arr2[]="男";//性别$arr2[]=true;//是否单身echo "<pre>";print_r($arr2);echo "</pre>";/*输出结果:Array([0] => 欧阳华夏[1] => 25[2] => 男[3] => 1)*///方式3$arr3=[0=>"欧阳华夏",1=>25,3=>"男",4=>true];echo "<pre>";print_r($arr3);echo "</pre>";/*输出结果:Array([0] => 欧阳华夏[1] => 25[2] => 男[3] => 1)*///**********定义关联数组**********////方式4:$arr4["name"]="欧阳华夏";//姓名$arr4["age"]=25;//年龄$arr4["sex"]="男";//性别$arr4["is_Single"]=true;//是否单身echo "<pre>";print_r($arr4);echo "</pre>";/*输出结果:Array([name] => 欧阳华夏[age] => 25[sex] => 男[is_Single] => 1)*///方式5$arr5=["name"=>"欧阳华夏","age"=>25,"sex"=>"男","is_Single"=>true];echo "<pre>";print_r($arr5);echo "</pre>";输出结果:/*Array([name] => 欧阳华夏[age] => 25[sex] => 男[is_Single] => 1)*/
?>

在上述示例代码中,分别定义了索引数组和关联数组

①方式1对应方式4,创建一个数组变量,使用赋值运算符挨个给数组变量赋值

②方式2创建数组,赋值时没有指定“键”,使用默认键,即“键”从0开始

③方式3对应方式5,在一个“[]”中使用“=>”符号给数组赋值

2、使用array()函数定义数组

除了通过赋值方式定义数组外,还可以使用array()函数定义数组,它接收数组的元素作为参数,多个元素之间使用英文逗号分隔;

<?php
//**********定义索引数组**********////方式1$arr1=array("欧阳华夏",28,"男",true);
//**********定义关联数组**********//$arr2=array("name"=>"欧阳华夏","age"=>28,"sex"=>"男","is_Single"=>true);    
?>

4.1.3 数组元素的获取

获取数组中单个元素的值:

$数组名[键名]

打印数组的全部值:

<?php
/************************方法1********************************/echo "<pre>";print_r("数组名")echo "</pre>";
/************************方法2********************************/echo "<pre>";var_dump("数组名")echo "</pre>";
?>

PHP提供了print_r()函数和var_dump(),专门用于输出数组中的所有元素,需要注意一下几点:

①print_r()函数只能打印出来数组中的元素

②var_dump()函数在打印数组中元素的同时还能打印出元素中值的数据类型

③在上述代码中,都有两行echo "<pre>"代码,其中“pre”标签的作用是用格式化文本输出。

 4.1.4 删除数组

PHP中提供了unset()函数用于删除数组的元素,使用规则:

①语法: unset(数组名[索引])

②删除元素后数组不会重建该元素的索引。即未被删除的元素的索引不会因为删除了元素而改变

③可以删除整个数组: unset(数组名)

4.1.5 数组操作符

数组这种符合类型的数据可以进行运算,数组的运算通过数组操作数实现。见表4-1:

表4-1 数组操作运算符

运算符

含义

示例

+

联合

$a+$b$a$b的联合

==

相等

$a==$b;如果$a$b具有相同的键值对,则为true

===

全等

$a===$b;如果$a$b具有相同的键值对且顺序和类型都相同则为true

!=

不等

$a!=$b;如果$a不等于$b,则为true

<>

不等

$a<>$b;如果$a不等于$b,则为true

!==

不全等

$a!===$b;如果$a不全等于$b,则为true

注:”+“为联合运算符,用于合并数组。如果出现下标相同的元素,则保留第一个数组内的元素。

4.2 数组的常见操作

4.2.1 数组指针

对数组中的元素进行访问过程中需要用到数组指针。数组指针用于指向数组中的某个元素,默认情况下指向数组的第一个元素。注意:一个数组只有一个数组指针。具体数组指针见表4-2:

表4-2 数组指针操作函数

函数名

作用

mixd current(array $array)

获取数组中当前元素的值,如果内部指针超出数组的末端,则返回false

mixd key(array $array)

获取当前元素的键名

mixd next(array $array)

将数组的内部指针向前移动一位

mixd prev(array $array)

将数组的内部指针倒回一位

mixd end(array $array)

将数组的内部指针指向最后一个元素

mixd reset(array $array)

重置指针,即将数组的指针指向第一个元素

4.2.2 数组遍历

在PHP中使用foreach语句实现数组的遍历:

无键名遍历

foreach(数组名 as $Value){ //循环体 
}

键值对遍历

foreach(数组名 as $Key => $Value){//循环体
}

4.2.3 数组排序----冒泡排序

 1 <?php
 2     //********************冒泡排序*******************//
 3     $array=[9,8,2,5,3];
 4     /*从小到大
 5     冒泡排序思路:
 6     1、从第一个元素开始,将相邻的两个元素依次进行比较,直到最后两个元素完成比较。如果前一个元素比后一个元素大,交换位置,整个
 7     过程完成后,数组中最后一个元素就是最大值,这就完成了第一轮比较
 8     2、除了最后一个元素,将剩余的元素进行两两比较,过程与第一步相似,这样就可以将数组中第二大的数放在倒数第二个位置
 9     3、依次类推,持续对元素进行两两比较,直到没有任何一对元素需要比较为止
10     */
11    
12     for($i=0;$i<count($array)-1;$i++){
13           //最外层循环,控制比较的轮数,很明显,冒泡排序比较轮数=数组长度-1
14           for($j=0;$j<count($array)-1-$i;$j++){
15               //里层循环控制相邻的两个数,$j的取值范围要注意,没进行一轮,$j的取值小一次
16               if($array[$j]>$array[$j+1]){
17                   $temp=$array[$j];
18                   $array[$j]=$array[$j+1];
19                   $array[$j+1]=$temp;
20               }
21           }
22    }

4.2.4 数组元素查找

1、顺序查找法----------查找一个数组中是否包含数字8,如果包含,返回当前元素的索引,否则返回“查无此数”;

 1 <?php
 2     //定义数组
 3     $arr=array(2,3,5,8,9);
 4     //定义函数,查找数字8
 5     function searchIndex($Array,$Value){
 6         for($i=0;$i<count($Array);$i++){
 7             if($Array[$i]===$Value){
 8                 return $i ;
 9             }
10         }
11         return "查无此数";
12     }
13     
14     $result=searchIndex($arr,8);
15     echo $result;
16 ?>

2、二分查找法-----查找一个数组中是否包含元素5,如果存在,则输出下标,否则返回“查无此数”

 1 <?php
 2     //定义数组,
 3     $arr=array(2,3,5,8,9,11,16);
 4     //定义函数
 5     function binarySearch($Array,$Value,$Start_index,$End_index){
 6         if($Start_index > $End_index){
 7             return "查无此数";
 8         }
 9         //获取中间元素下标
10         $Mid_index=round(($Start_index + $End_index)/2);
11         if($Array[$Mid_index] > $Value){//元素在中间元素的左边
12             //从左边查找
13             binarySearch($Array,$Value,$Start_index,$Mid_index-1);
14         }else if($Array[$Mid_index] < $Value){//元素在中间元素右边
15             //从右边查找
16             binarySearch($Array,$Value,$Mid_index+1,$End_index);
17         }else{//查找元素和中间元素值相同
18             echo $Mid_index;
19         }
20     }
21     binarySearch($arr,5,0,count($arr)-1);
22 ?> 

4.3 数组的常用函数

 4.3.1 基本函数

1、is_array()函数

is_array()函数的作用是判断一个变量是否是一个数组,如果是数组,返回true,否则返回false。

bool is_array(mixed $var);

is_array()函数接受一个mixed类型的变量var,然后判断这个变量是不是数组。

2、count()函数

count()函数的作用是用于计算数组中元素的个数。

int count(mixed $var [,int $mode]);

在上述声明中,count()函数接收两个参数,其中$var参数是必须的,表示传入的数组对象;$mode参数是可选参数,值为0或者1。
  $mode=0----->只显示一维数组的个数;
  $mode=1----->递归计算多维数组中每个元素的个数;

示例如下:

 1 <?php
 2     //一维数组$arr1
 3     $arr1=array("百度","新浪","搜狐","网易","传智");
 4     //输出长度
 5     echo '一维数组$arr1的长度是:' . count($arr1) . "<br/>";
 6     
 7     //二维数组
 8     $arr2=array(
 9         '$arr3'=>array("a","b","c","d","e"),
10         '$arr4'=>array("1","2","3","4","5")
11     );
12     //输出长度
13     
14     //所有元素
15     echo '$arr2的所有元素的个数:' . count($arr2,1) . "<br/>";//计算二维数组中所有元素的个数,12个
16     //一维元素
17     echo '$arr2的一维元素的个数:' . count($arr2) . "<br/>";//计算二维数组中所有一维元素的个数,2个
18 ?>

3、array_unique()函数

array_unique()函数的作用是移出数组中的重复元素。

array array_unique(array $array);

在上述声明中,array_unique()函数接受一个数组,去除重复元素后返回一个新的数组。在使用该函数时,首先将数组元素的值作为字符串排序,然后对每个值只保留第一个键名,忽略后面所有的键名。

 1 <?php
 2     $input=array("a"=>"green","red","b"=>"green","blue","red");
 3     echo "<pre>";
 4     print_r($input);
 5     //调用函数
 6     $result=array_unique($input);
 7     print_r($result);
 8     echo "</pre>";
 9     
10     /*运行结果
11     Array
12     (
13         [a] => green
14         [0] => red
15         [b] => green
16         [1] => blue
17         [2] => red
18     )
19     Array
20     (
21         [a] => green
22         [0] => red
23         [1] => blue
24     )
25     */
26 ?>

4.3.2 键值对的相关函数

1、array_search()

array_search()函数用于获取数组中元素对应的键名。

array array_search(mixed $needle,array $haystack [,bool $strict]);

在上述声明中,$needle表示在数组中要查找的值,$haystack表示被查询的数组。$strict参数是可选的,当值为true时,就会在$haystack数组中检查$needle的类型。

1 <?php
2     $array=array(0=>"blue",1=>"red",2=>"green",3=>"red");
3     echo "green对应的键为:";
4     echo array_search("green",$array);
5     //结果:green对应的键为:2
6 ?>

当被查询的元素在数组中出现两次以上时,那么array_search()函数返回第一个匹配的键名。

2、array_keys()函数

array_keys()函数同样用于获取数组中元素对应的键名。不同的是,array_keys()函数可以返回所有匹配的键名。

array array_keys(array $input [,mixed $search_value [,bool $strict]]);

上述声明中,$input表示要被查询的数组;$search_value参数是可选参数,当给$search_value赋值时,函数返回该值的键名,否则返回$input数组的所有的键名。$strict参数用来进行全等比较,需要传入一个布尔值,默认为false,如果为true则根据类型返回带有指定值的键名。

 1 <?php
 2     //定义数组arr1
 3     $arr1=array(0=>"ttg","name"=>"dandy");
 4     print_r(array_keys($arr1));                //返回数组中元素的所有键名
 5     //Array ( [0] => 0 [1] => name )
 6     print_r(array_keys($arr1,"dandy"));        //获取数组元素为"dandy"对应的键名
 7     // Array ( [0] => name )
 8     
 9     //定义数组arr2
10     $arr2=array(11,12,32,"11");
11     print_r(array_keys($arr2,11));            //获取元素11(不依赖类型)
12     //Array ( [0] => 0 [1] => 3 )
13     print_r(array_keys($arr2,"11",true));    //获取字符串类型的元素的"11"
14     // Array ( [0] => 3 )
15 ?>

array_keys()函数可以根据传入的参数,返回不同的键名。当传入的参数是一个数组时,则返回所有的键。当传入一个指定数组中某个元素时,返回该元素对应的键。

4.3.3 排序函数

PHP提供了多个排序的函数,例如sort()函数、rsort()函数、ksort()函数等。

以sort()函数为例,讲解数组的排序功能。sort()函数的作用就是对数组中的元素按照从小到大的顺序进行排序。

bool sort(array $array [,int $sort_flag=sort_regular]);

在上面的声明中,$array参数表示需要排序的数组,$sort_flag是可选参数,sort()函数会根据$sort_flag的值改变数组的排序方式。$sort_flag的取值如表4-3所示:

表4-3 $sort_flag的取值范围

取值范围

排序方式

SORT_REGULAR

默认值,将自动识别数组元素的类型进行排序

SORT_NUMERIC

用于数字元素的排序

SORT_STRING

用于字符串元素的排序

SORT_LOCALE_STRING

跟去当前local设置来把元素当作字符串比较

示例代码:

<?php$arr=array("4apple","3banana","1orange","2peach");sort($arr,SORT_NUMERIC);echo "<pre>";print_r($arr);echo "</pre>";/*运行结果:Array([0] => 1orange[1] => 2peach[2] => 3banana[3] => 4apple)*/
?>

4.3.4 合并和拆分函数

1、array_merge()函数

array_merge()函数的作用是合并一个或多个数组。

array array_merge(array $array1 [,array $...]);

array_merge()将一个或者多个数组的单元合并起来,一个数组的值附加在另一个数组的后面,返回一个新的数组。
  ①如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前面的值;
  ②如果数组中包含数字键名,后面的值不会覆盖原来的值,而是附加在数组的后面;
  ③如果数组是数字索引的,则键名会以连续方式重新编排索引。

 1 <?php
 2     $array1=array("color"=>"red",2,4);
 3     $array2=array("a","b","color"=>"green","shape"=>"trapezoid",4);
 4     $result=array_merge($array1,$array2);
 5     echo "<pre>";
 6     print_r($result);
 7     echo "</pre>";
 8     
 9     /*运行结果:
10     Array
11         (
12             [color] => green
13             [0] => 2
14             [1] => 4
15             [2] => a
16             [3] => b
17             [shape] => trapezoid
18             [4] => 4
19         )
20     */
21 ?>

2、array_chunk()函数

函数array_chunk()的作用是将一个数组分割成多个数组。

array array_chunk(array $input,int $size [,bool $preserve_keys]);

上述声明中,$input表示要分割的数组,$size是分割后每个数组中元素的个数,$preserve_keys是一个可选参数。如果将该参数设置为true,则分割后的数组中元素保留原来的索引,如果将该参数设置为false,则分割后数组中的元素的索引将从零开始。

代码如下:

 1 <?php
 2     $arr=array("cctv-a","cctv-b","cctv-c");
 3     //分割数组
 4     echo "<pre>";
 5     echo "分割后的数组为:" . "<br/>";
 6     print_r(array_chunk($arr,2));
 7     echo "</pre>";
 8     /*运行结果:
 9     分割后的数组为:
10     Array
11     (
12         [0] => Array
13             (
14                 [0] => cctv-a
15                 [1] => cctv-b
16             )
17 
18         [1] => Array
19             (
20                 [0] => cctv-c
21             )
22 
23     )
24     */
25    
26    //第二次分割
27    echo "<pre>";
28    echo "分割后的数组为:" . "<br/>";
29    print_r(array_chunk($arr,2,true));
30    echo "</pre>";
31    /*运行结果:
32   分割后的数组为:
33     Array
34     (
35         [0] => Array
36             (
37                 [0] => cctv-a
38                 [1] => cctv-b
39             )
40 
41         [1] => Array
42             (
43                 [2] => cctv-c
44             )
45 
46     )
47    */
48 ?>

 4.3.5 其他函数

1、array_rand()函数

array_rand()函数的作用是从数组中随机取出一个或多个元素。

mixed array_rand(array $input [,int $num_req]);

array_rand()函数接受一个input参数和一个可选的参数num_req,其中input参数用于指定接受的数组,num_req用于指定取出元素的个数,默认为1。如果只取出一个元素,array_rand()会返回一个随机元素的键名,否则返回一个包含随机键名的数组。

代码如下:

 1 <?php
 2     $input=array("科比","姚明","詹姆斯","艾佛森","基德");
 3     echo "<pre>";
 4     echo "随机获取一个元素" . "<br/>";
 5     print_r(array_rand($input));
 6     echo "<br/>";
 7     echo "随机获取两个元素" . "<br/>" ;
 8     print_r(array_rand($input,2));
 9     echo "</pre>";
10     
11     /*运行结果:
12     随机获取一个元素
13     2
14     随机获取两个元素
15     Array
16     (
17         [0] => 2
18         [1] => 3
19     )
20     */
21 ?>

2、array_reverse()

array_reverse()函数的作用是返回一个元素顺序相反的数组。

array array_reverse(array $array [,bool $preserve_keys]);

array_reverse()接受数组array作为输入并返回一个元素为相反顺序的新数组,如果preserve_keys为true,则保留原来的键名。

代码如下:

 1 <?php
 2     $input=array("ibim",122,array("dell","apple"));
 3     $result=array_reverse($input);
 4     echo "<pre>";
 5     print_r($result);
 6     echo "</pre>";
 7     /*运行结果:
 8     Array
 9     (
10         [0] => Array
11             (
12                 [0] => dell
13                 [1] => apple
14             )
15 
16         [1] => 122
17         [2] => ibim
18     )
19     键名被修改
20     */
21    $result_keyed=array_reverse($input,true);
22    echo "<pre>";
23    print_r($result_keyed);
24    echo "</pre>";
25    /*运行结果:
26   Array
27     (
28         [2] => Array
29             (
30                 [0] => dell
31                 [1] => apple
32             )
33 
34         [1] => 122
35         [0] => ibim
36     )
37     键名保留不会修改
38    */
39 ?>

转载于:https://www.cnblogs.com/WangYujie1994/p/10342474.html

相关文章:

spark编程基础--2.2scala基础知识

&#xff1a;load 读写文件 for循环表达式 对循环的控制breakable 数据结构--数组 数据结构--元祖 数据结构--列表 Range 集合 - 可变的集合可以在原集合上进行添加、更新及删除元素。 - 不可变集合一旦被创建便不能被改变&#xff0c;添加、更新及删除操作返回的是新的集合&…

BZOJ 3483 SGU505 Prefixes and suffixes(字典树+可持久化线段树)

【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id3483 【题目大意】 给出一些串&#xff0c;同时给出m对前缀后缀&#xff0c;询问有多少串满足给出的前缀后缀模式&#xff0c;   题目要求强制在线 【题解】 我们对于给出的每个字符串正着插入字典树A&#xf…

石英晶体振荡器的结构

石英晶体振荡器的结构 石英晶体振荡器是利用石英晶体&#xff08;二氧化硅的结晶体&#xff09;的压电效应制成的一种谐振器件&#xff0c;它的基本构成大致是&#xff1a;从一块石英晶体上按一定方位角切下薄片&#xff08;简称为晶片&#xff0c;它可以是正方形、矩形或圆形等…

坐班族如何摆脱粗壮大腿

对于很多office lady来说一天可能会在办公室坐上八个小时甚至更多的时间&#xff0c;慢慢地会发现大腿越来越粗壮&#xff0c;其实只要认清你大腿的问题真正出在哪里&#xff1f;用一些简单的运动甚至改变坐姿&#xff0c;都可以达到阻止大腿变粗的效果……一起来看看吧&#x…

spark编程基础--2.3面向对象编程基础

类 对象 继承 参数化类型 特质 模式匹配&#xff08;match case类&#xff09; 包 类的定义 构造器 //代码文件为/usr/local/scala/mycode/Counter2.scala class Counter {private var value 0 private var name "" private var step 1 //计算器的默认递进步长 …

网络编程物理层

osi七层协议 互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层 每层运行常见的物理设备 我们将应用层&#xff0c;表示层&#xff0c;会话层并作应用层&#xff0c;从tcp&#xff0f;ip五层协议的角度来阐述每层的由来与功能&#xff0c;搞清楚了每层的主要协议 就理…

2017高级软件工程第1次作业

第一部分&#xff1a;结缘计算机 1.你为什么选择计算机专业&#xff1f;你认为你的条件如何&#xff1f;和这些博主比呢&#xff1f; 说起来也是阴差阳错&#xff0c;高考填志愿的时候考虑的是当时最火的3个专业&#xff1a;机械、土木、电气。只知道哎呀这个专业好&#xff0c…

微软图表控件MsChart

转自&#xff1a;http://tech.ddvip.com/2008-11/122640479791375.html 昨天在网上看到了微软发布了.NET 3.5框架下的图表控件&#xff0c;第一时间抓下来看了一下&#xff0c;发觉功能很强劲&#xff0c;基本上能想到的图表都可以使用它绘制出来&#xff0c;给图形统计和报表图…

方案里最常用的集群拓扑图(包含:多机集群、负载均衡、双机)

1、san.JPG2、SAN集群.JPG3、不同楼层双机热备.JPG4、纯软双机.JPG5、纯软双机热备备份恢复2.jpg6、多机集群与备份.jpg7、负载均衡.jpg8、负载均衡之数据库均衡.JPG9、工控.JPG10、监控.bmp11、监控应用&#xff08;SCSI&#xff09;.JPG12、容灾.JPG13、双机热备备份恢复1.jp…

基于最短路方法的生物序列比对问题研究

概述 作为生物信息学中的基本组成和重要基础&#xff0c;生物序列比对旨在找出两个或多个生物序列之间的相似性&#xff0c;发现生物序列中的功能、结构和进化信息。 生物序列比对在现实生活中有广泛的应用价值。从核酸和蛋白质序列出发,分析序列中表达结构和功能的生物信息&am…

NOI2003文本编辑器

problem 传送门 Solution 块状链表板子题…… 码了一下午&#xff0c;调了一晚上&#xff0c;代码重构了3遍&#xff0c;在终于过了。 还是太菜了。 移动光标的操作直接模拟即可。 插入操作&#xff0c;先将光标所在块分裂成两块&#xff0c;然后直接插入。 删除操作直接将边角…

spark编程基础--2.4函数式编程基础

foreach遍历操作 映射操作map,flatmap 过滤操作filter 规约操作 reduce,fold方法 拆分操作partition,groupedBy,grouped,sliding Scala入门&#xff1a;函数式编程实例WordCount import java.io.File import scala.io.Source import collection.mutable.Map object WordCount …

开始一点点写博客

今天被老樊问了几个基础的问题&#xff0c;都没回答上来&#xff01;惭愧啊&#xff01;所以决定用博客的方式来记录在学习中的问题以便好复习&#xff0c;增强记忆&#xff01;转载于:https://www.cnblogs.com/MoShin/archive/2008/11/29/1343593.html

无人值守安装win2003+sp2的补丁

1. 无人值守安装win2003sp2的补丁<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />2. 思路&#xff1a; l 第一我们做把sp2的补丁集成到win2003的光盘中l 创建生成无人值守并加载到光盘中l …

构建安全的 ASP.NET 网页和控件

本页内容 本模块内容目标适用范围如何使用本模块威胁和对策设计注意事项输入验证跨站点脚本身份验证授权模拟敏感数据会话管理参数处理异常管理审核和日志记录小结其他资源本模块内容 Web 页和控件位于应用程序的防御前线&#xff0c;它们很容易受到蓄意破坏应用程序安全的攻击…

IDEA新建一个多maven模块工程(有图)

对于一些大型的项目来说&#xff0c;将项目的各个模块理清并进行管理&#xff0c;便于后续项目的维护&#xff0c;使用maven管理是很方便的&#xff0c;它可以很好的构建模块来设计项目的整体结构&#xff0c;对一些小型的项目不建议使用 1、新建父maven模块&#xff08;idea版…

windows10上使用一个tomcat部署2个项目

前言&#xff1a;目前想在本机部署2个项目&#xff0c;网上查了之后&#xff0c;写下本篇随笔 1、准备工作 2、操作方法 3、运行2个项目 1、准备工作 2个war包&#xff08;一个jprss.war和一个jenkins.war&#xff09; 1个tomcat环境 2、操作方法 第一步&#xff1a;复制tomcat…

spark编程基础--4.2在spark-shell中运行代码

启动spark-shell Spark2.1.0入门&#xff1a;Spark的安装和使用 通过spark-submit运行程序

不经历风雨,怎么能见彩虹!马克斯与我的不解之缘!

从***到站长总结经验&#xff08;让你IP飞速飙升的秘诀&#xff09;<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />第一章&#xff1a;站长的梦想&#xff01;&#xff01;&#xff01;接触网络比较早&#xff0c;但是真正学到…

centos安装pg以及pg配置ssl

https://blog.csdn.net/iteye_21194/article/details/82645389 https://blog.csdn.net/rudy5348/article/details/79299162 https://yq.aliyun.com/articles/187转载于:https://www.cnblogs.com/diyunpeng/p/10398642.html

使用sbt编译打包,spark-submit命令提交的详细步骤

Spark2.1.0入门&#xff1a;Spark的安装和使用 使用sbt打包Scala程序 该程序依赖 Spark API&#xff0c;因此我们需要通过 sbt 进行编译打包。 请在./sparkapp 中新建文件 simple.sbt&#xff08;vim ./sparkapp/simple.sbt&#xff09;&#xff0c;添加内容如下&#xff0c;…

Tomcat异常退出

tomcat正常运行期间&#xff0c;会出现这样的报错&#xff0c;于是在网上搜了一下&#xff0c;发现有前辈&#xff0c;已找到解决办法&#xff0c;碎不甚明白其中缘由&#xff0c;但先记下&#xff0c;日后深研究&#xff1a; 我的机器的报错内容&#xff1a; SEVERE: Error pr…

[转载]前端工程师应该关注什么

克军发的一张图&#xff0c;汗死我了。http://farm4.static.flickr.com/3025/3114605967_248a0da171_o.png 转载于:https://www.cnblogs.com/cly84920/archive/2008/12/17/4427051.html

组策略分发软件全攻略

组策略分发软件全攻略 在规模比较大的网络环境里面&#xff0c;为了对服务器和客户机上的软件、系统补丁进行集中统一的管理&#xff0c;我们可能会用到SUS、WSUS、SMS等。SUS、WSUS管理系统更新&#xff0c;不在本文讨论&#xff0c;请参考其它相关技术文档。虽然SMS功能较强大…

Saiku二次开发获取源代码在本地编译(五)

关于Saiku的二次开发&#xff0c;在本地编译然后启动自己编译好的Saiku服务 Saiku是开源的&#xff0c;从github上能下载源代码&#xff0c;本例中的saiku源码也是从github上找的&#xff0c;然后自己改了一些pom.xml&#xff0c;以及其它调整。 当前提供的saiku版本为 3.9 一、…

As3.0 一些好书连接

优秀RIA书籍教程推荐与交流平台 http://www.riabook.cn/ 这里有很多不错的书。希望你们有帮助 转载于:https://www.cnblogs.com/guoyiqi/archive/2008/12/19/2069462.html

spark编程基础--5.1RDD编程基础

RDD创建 1.从文件系统中加载数据创建RDD 2.从分布式文件系统HDFS中加载数据 3.通过并行集合&#xff08;数组&#xff09;创建RDD RDD操作 1.转换操作 filter(func) map(func) flatmap(func) groupByKey() reduceByKey(func) 2.行动操作 3.惰性机制 所谓的“惰性机制”是指&…

JMeter的安装和使用

开始学习JMeter&#xff0c;网上资源虽多&#xff0c;不如自己总结的更有意义。 1. JMeter 的安装&#xff1a; 首先要安装java&#xff0c;这个直接去官网下载安装然后添加环境变量即可https://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/ &#xff0c;下载JMeter…

C# 3.0 —— 扩展方法

扩展方法是C# 3.0新加入的特性&#xff0c;允许我们在不改变源代码的情况下扩展&#xff08;即填加&#xff09;现有类型中的实例方法&#xff0c;也给我们提供了另外一种扩展类型行为的方法(其它的方法为继承、组合、反射)。 下面我们来看一个代码示例&#xff1a; classProgr…

Melkman's Algorithm

http://cgm.cs.mcgill.ca/~athens/cs601/Melkman.html https://maxgoldste.in/melkman/ 转载于:https://www.cnblogs.com/noryes/p/10406873.html