
php
虾米俊
这个作者很懒,什么都没留下…
展开
-
empty、isset、is_null的区别
isset()用来检测一个变量是否已声明且值不为NULL。即,只有在变量值不为NULL时返回真。empty()用来检测一个变量是否为空,即如下情况返回真:变量是空字符串,false,空数组[array()],NULL,0,’ ‘,以及被unset删除后的变量。is_null()用来判断变量内容是否为NULL值,即仅为变量是NULL时返回真。如表格所示,空白表示返回false原创 2016-10-11 21:04:51 · 257 阅读 · 0 评论 -
调整数组顺序使奇数位于偶数前面
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。function reOrderArray($array){ $a=array(); $b=array(); foreach ($array as $value){ if (原创 2017-07-11 15:23:56 · 142 阅读 · 0 评论 -
翻转单词顺序列
例如,“student. a am I”。把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。function ReverseSentence($str){ $arr=explode(' ',$str); return implode(' ',array_reverse($arr));}原创 2017-07-10 18:48:01 · 148 阅读 · 0 评论 -
数组中出现次数超过一半的数字
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。<?phpfunction MoreThanHalfNum_Solution($numbers){ //计算数组中每个数字出现的次数 $arr=array_count_val原创 2017-07-10 18:45:13 · 143 阅读 · 0 评论 -
数字在排序数组中出现的次数
统计一个数字在排序数组中出现的次数。function GetNumberOfK($data, $k){ if (in_array($k,$data)){ $arr=array_count_values($data); //返回数字k出现的次数 return $arr[$k]; }else{ retu原创 2017-07-12 18:07:15 · 155 阅读 · 0 评论 -
和为S的连续正数序列
小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck! 输出描述:输出所有和为S的连续正数序列。序列内原创 2017-07-11 16:15:15 · 156 阅读 · 0 评论 -
和为S的连续正数序列
小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck! 输出描述:输出所有和为S的连续正数序列。序列内原创 2017-07-11 16:39:11 · 174 阅读 · 0 评论 -
和为S的两个数字
输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 输出描述:对应每个测试案例,输出两个数,小的先输出。function FindNumbersWithSum($array, $sum){ //存放和为sum的数组 $sumArray=array(); for ($i=0;$i$原创 2017-07-12 18:08:08 · 156 阅读 · 0 评论 -
PHP实现排列组合
<?php// 阶乘function factorial($n){ return array_product(range(1,$n));}// 排列数function A($n,$m){ return factorial($n)/factorial($n-$m);}// 组合数function C($n,$m){ return A($n,$m)/factorial(转载 2017-07-10 14:50:38 · 1985 阅读 · 0 评论 -
构建乘积数组
给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…A[i-1]*A[i+1]…*A[n-1]。不能使用除法。<?phpfunction multiply($numbers){ $b=array(); //若原数组0个数大于1个,则用0填充b数组 if (array_count_values($n原创 2017-08-08 11:21:38 · 184 阅读 · 0 评论 -
左旋转字符串
汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!function LeftRotateString($str, $n){ //字符串转换原创 2017-08-08 11:22:16 · 162 阅读 · 0 评论 -
替换空格
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。function replaceSpace($str){ $arr=explode(' ',$str); return implode('%20',$arr);}添加笔记原创 2017-07-10 18:50:47 · 164 阅读 · 0 评论 -
用两个栈实现队列
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。//两个栈global $arr1;$arr1=array();global $arr2;$arr2=array();function mypush($node){ global $arr1; array_push($arr1,$node);}function mypop(原创 2017-07-11 15:19:45 · 164 阅读 · 0 评论 -
非递归实现斐波那契数列
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<=39。有时间内存限制<?phpfunction Fibonacci($n){ $a=1; $b=1; if ($n==0){ return 0; }elseif ($n==1||$n==2){ return 1; } else{原创 2017-07-11 15:17:05 · 246 阅读 · 0 评论 -
require、require_once、include、include_once区别
require_once 和 include_once 在执行时只对包含的文件执行一次,即使在代码中调用多次。include和include_once若包含失败,显示警告错误(warning error),然后继续执行。 require和require_once若包含失败,抛出致命错误(fatal error),中止执行。 开发严谨应用时,应用require和require_once。 实际中原创 2016-10-11 21:35:53 · 208 阅读 · 0 评论 -
PHP7新改动
PHP7中有比较重要的两个新改动:1. mysql系列函数被移除mysql系列函数(mysql_connect, mysql_query …),在PHP 5.5.0 起已经被标记为废弃状态,并在PHP7版本中已经移除,官方更加推荐使用mysqli系列函数,或者PDO进行数据库的相关操作。2. $HTTP_RAW_POST_DATA 被移除同样的,$HTTP_RAW_POST_DATA变量在PHP 5原创 2016-09-29 09:55:33 · 333 阅读 · 0 评论 -
PHP缓存机制
使用php自身的缓存机制如果要测试php自己的缓存机制, 需要配置php.ini 文件display_errors=Onoutput_buffering=Offerror_reporting= 设置错误级别两种缓冲区:outputbuffer和程序缓存 ob缓存关闭以后就放到程序缓存,程序缓存必须放到header后面,否则报错函数:ob_start(); //开启缓存ob_clean();原创 2016-10-18 18:41:35 · 459 阅读 · 0 评论 -
PHP date()获取系统时间不对怎么办?
使用PHP获取系统时间,发现时间不对,是因为PHP默认的时区是UTC,应该将其时区设置为北京时间。方法一:修改php.ini文件 打开php.ini文件:鼠标左键点击右下角的WampServer图标——PHP——php.ini, 查找date.timezone,找到date.timezone =”UTC”, 将其改为date.timezone =”PRC”,若date.timezone左边有分转载 2017-04-14 08:32:53 · 306 阅读 · 0 评论 -
PHP实现双端队列
PHP实现队列:第一个元素作为队头,最后一个元素作为队尾<?php$array = array('PHP', 'JAVA');array_push($array, 'PYTHON'); //入列array_shift($array); //出列PHP实现双端队列<?phpclass Deque{ public $queue=array(); //尾入列 public转载 2017-04-14 08:37:53 · 356 阅读 · 0 评论 -
PHP解耦的三重境界(服务容器)
第一重境界假设场景:我们需要写一个处理类,能够同时操作会话,数据库和文件系统。我们或许会这么写。 境界特征:可以运行,但是严重耦合<?php/** * 第一重 */namespace test1;class DB{ public function __construct($arg1,$arg2){ echo 'constructed'.PHP_EOL; }转载 2017-04-14 08:49:59 · 296 阅读 · 0 评论 -
第一个只出现一次的字符
在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置<?phpfunction FirstNotRepeatingChar($str){ if (!isset($str)||empty($str)){ return -1; } //字符串转为数组 $arr=str_split($str);原创 2017-07-10 17:02:55 · 180 阅读 · 0 评论 -
整数中1出现的次数(从1到n整数中1出现的次数)
1~13中包含1的数字有1、10、11、12、13,1共出现6次。求任意非负整数区间中1出现的次数。链接:https://www.nowcoder.com/questionTerminal/bd7f978302044eee894445e244c7eee6?toCommentId=567854 来源:牛客网<?phpfunction NumberOf1Between1AndN_Solution($n原创 2017-07-10 18:33:42 · 406 阅读 · 0 评论 -
把数组排成最小的数
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。<?phpfunction PrintMinNumber($numbers){ $result=array(); //全排列,每一种为一个数组 $arr=arrangement($numbers,co原创 2017-07-10 18:38:36 · 220 阅读 · 0 评论 -
最小的K个数
输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。<?phpfunction GetLeastNumbers_Solution($input, $k){ // write code here if ($k>count($input)){ return array(); } sort原创 2017-07-10 18:40:51 · 159 阅读 · 0 评论 -
滑动窗口的最大值
给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5,1}, {原创 2017-08-08 11:21:04 · 265 阅读 · 0 评论