1. phpyun小程序 php微信小程序实例
php微信小程序实例及相关知识点
一、php处理微信小程序request请求
二、微信小程序向外部php文件传递参数
三、服务端api.php接收微信小程序数据请求
四、微信小程序图片上传功能实现
五、微信小程序开发教程概要
六、公众号关联小程序
七、微信小程序支付及退款
以上是关于php微信小程序实例及相关知识点的详细介绍,希望能对您有所帮助。
2. php几种排序算法实例详解
四种排序算法的PHP实现:
1)插入排序(InsertionSort)的基本思想是:
每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。
2)选择排序(SelectionSort)的基本思想是:
每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子文件的最后,直到全部记录排序完毕。
3)冒泡排序的基本思想是:
两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。
4)快速排序实质上和冒泡排序一样,都是属于交换排序的一种应用。所以基本思想和上面的冒泡排序是一样的。
1.sort.php文件如下:
<?php
classSort{
private$arr=array();
private$sort='insert';
private$marker='_sort';
private$debug=TRUE;
/**
*构造函数
*
*@paramarray例如:
$config=array(
'arr'=>array(22,3,41,18),//需要排序的数组值
'sort'=>'insert',//可能值:insert,select,bubble,quick
'debug'=>TRUE//可能值:TRUE,FALSE
)
*/
publicfunctionconstruct($config=array()){
if(count($config)>0){
$this->_init($config);
}
}
/**
*获取排序结果
*/
publicfunctiondisplay(){
return$this->arr;
}
/**
*初始化
*
*@paramarray
*@returnbool
*/
privatefunction_init($config=array()){
//参数判断
if(!is_array($config)ORcount($config)==0){
if($this->debug===TRUE){
$this->_log("sort_init_param_invaild");
}
returnFALSE;
}
//初始化成员变量
foreach($configas$key=>$val){
if(isset($this->$key)){
$this->$key=$val;
}
}
//调用相应的成员方法完成排序
$method=$this->sort.$this->marker;
if(!method_exists($this,$method)){
if($this->debug===TRUE){
$this->_log("sort_method_invaild");
}
returnFALSE;
}
if(FALSE===($this->arr=$this->$method($this->arr)))
returnFALSE;
returnTRUE;
}
/**
*插入排序
*
*@paramarray
*@returnbool
*/
privatefunctioninsert_sort($arr){
//参数判断
if(!is_array($arr)ORcount($arr)==0){
if($this->debug===TRUE){
$this->_log("sort_array(insert)_invaild");
}
returnFALSE;
}
//具体实现
$count=count($arr);
for($i=1;$i<$count;$i++){
$tmp=$arr[$i];
for($j=$i-1;$j>=0;$j--){
if($arr[$j]>$tmp){
$arr[$j+1]=$arr[$j];
$arr[$j]=$tmp;
}
}
}
return$arr;
}
/**
*选择排序
*
*@paramarray
*@returnbool
*/
privatefunctionselect_sort($arr){
//参数判断
if(!is_array($arr)ORcount($arr)==0){
if($this->debug===TRUE){
$this->_log("sort_array(select)_invaild");
}
returnFALSE;
}
//具体实现
$count=count($arr);
for($i=0;$i<$count-1;$i++){
$min=$i;
for($j=$i+1;$j<$count;$j++){
if($arr[$min]>$arr[$j])$min=$j;
}
if($min!=$i){
$tmp=$arr[$min];
$arr[$min]=$arr[$i];
$arr[$i]=$tmp;
}
}
return$arr;
}
/**
*冒泡排序
*
*@paramarray
*@returnbool
*/
privatefunctionbubble_sort($arr){
//参数判断
if(!is_array($arr)ORcount($arr)==0){
if($this->debug===TRUE){
$this->_log("sort_array(bubble)_invaild");
}
returnFALSE;
}
//具体实现
$count=count($arr);
for($i=0;$i<$count;$i++){
for($j=$count-1;$j>$i;$j--){
if($arr[$j]<$arr[$j-1]){
$tmp=$arr[$j];
$arr[$j]=$arr[$j-1];
$arr[$j-1]=$tmp;
}
}
}
return$arr;
}
/**
*快速排序
*@bywww.5wx.org
*@paramarray
*@returnbool
*/
privatefunctionquick_sort($arr){
//具体实现
if(count($arr)<=1)return$arr;
$key=$arr[0];
$left_arr=array();
$right_arr=array();
for($i=1;$i<count($arr);$i++){
if($arr[$i]<=$key)
$left_arr[]=$arr[$i];
else
$right_arr[]=$arr[$i];
}
$left_arr=$this->quick_sort($left_arr);
$right_arr=$this->quick_sort($right_arr);
returnarray_merge($left_arr,array($key),$right_arr);
}
/**
*日志记录
*/
privatefunction_log($msg){
$msg='date['.date('Y-m-dH:i:s').']'.$msg.' ';
return@file_put_contents('sort_err.log',$msg,FILE_APPEND);
}
}
/*Endoffilesort.php*/
/*Locationhtdocs/sort.php*/
2.sort_demo.php文件如下:
<?php
require_once('sort.php');
$config=array(
'arr'=>array(23,22,41,18,20,12,200303,2200,1192),
//需要排序的数组值
'sort'=>'select',
//可能值:insert,select,bubble,quick
'debug'=>TRUE
//可能值:TRUE,FALSE
);
$sort=newSort($config);
//var_mp($config['arr']);
var_mp($sort->display());
/*Endofphp*/
3. php获取数组长度的方法(有实例)
在php中获取数组长度方法很简单,php为我们提供了两个函数可以计算一维数组长度,如count,sizeof都可以直接统计数组长度哦,下面我们来看几个实例吧。
php如何获取数组的长度,使用php函数count(),或是sizeof()
例如:
复制代码
代码如下:
$arr
=
Array('0','1','2','3','4');
echo
count($arr);
//
输出
5
$arr
=
array('A','B','C');
echo
sizeof($arr);
//输出3
sizeof()和count()具有同样的用途,这两个函数都可以返回数组元素个数.可以得到一个常规标量变量中的元素个数,如果传递给这个函数的数组是一个空数组,或者是一个没有经过设定的变量,返回的数组元素个数就是0;
两函数功能一样,手册上讲,sizeof()是函数count()的别名。
那么多维数组长度要怎么统计呢?继续看例子
比如你读取的数组是一个二维数组:
复制代码
代码如下:
<?php
$arr=array(
0=>array('title'
=>
'新闻1',
'viewnum'
=>
123,
'content'
=>
'ZAQXSWedcrfv'),
1=>array('title'
=>
'新闻2',
'viewnum'
=>
99,
'content'
=>
'QWERTYUIOPZXCVBNM')
);
?>
如果你想统计数组$arr的长度,也就是说该二维数组只有两条新闻,你想要的数字也是2,但是如果使用count($arr)不同版本的php,统计的结果是不一样的;
后来在php手册中发现,count函数还有第二个参数,解释如下:
count函数有两个参数:
0(或COUNT_NORMAL)为默认,不检测多维数组(数组中的数组);
1(或COUNT_RECURSIVE)为检测多维数组,
所以如果要判断读取的数组$arr是不是有新闻信息,就要这样写了:
复制代码
代码如下:
<?php
if(is_array($arr)
&&
count($arr,COUNT_NORMAL)>0
)
{
.....
}
else
{
.....
}
?>
你可以使用这样的代码来测试该函数:
复制代码
代码如下:
<?php
$arr=array(
0=>array('title'
=>
'新闻1',
'viewnum'
=>
123,
'content'
=>
'ZAQXSWedcrfv'),
1=>array('title'
=>
'新闻2',
'viewnum'
=>
99,
'content'
=>
'QWERTYUIOPZXCVBNM')
);
echo
'不统计多维数组:'.count($arr,0);//count($arr,COUNT_NORMAL)
echo
"<br/>";
echo
'统计多维数组:'.count($arr,1);//count($arr,COUNT_RECURSIVE)
?>
4. php隐藏IP地址后两位显示为星号的方法
本文实例讲述了php隐藏IP地址后两位显示为星号的方法。分享给大家供大家参考。具体实现方法如下:
我们在很多的公共网站中都会有碰到显示用户的IP时后面几个IP段显示为星号了,这样很好的保护了用户隐私了,感兴趣的朋友可以一起来看看。
php正则格式化IP地址,隐藏后一位。
例子
复制代码
代码如下:<?php
//隐藏后一位
return
preg_replace('/(\d+)\.(\d+)\.(\d+)\.(\d+)/is',"$1.$2.$3.*",$ip);
//隐藏IP最后几位为*
echo
ereg_replace("[^\.]{1,3}$","*",$ip);
?>
例子
php实现隐藏Ip地址最后一段或者最后两段的方法
复制代码
代码如下:<?php
//--隐藏IP后几位
$ip='127.0.0.1';
$reg1='/((?:\d+\.){3})\d+/';
$reg2='~(\d+)\.(\d+)\.(\d+)\.(\d+)~';
echo
preg_replace($reg1,"\\1*",$ip);//以上输出结果为:127.0.0.*
echo
"------------------<br/>";
echo
preg_replace($reg2,"$1.$2.*.*",$ip);//以上输出结果为:127.0.*.*
?>
例子
复制代码
代码如下:function
suohao($phone){
$p
=
substr($phone,0,3)."*****".substr($phone,8,3);
return
$p;
}
当然还有像数组以.分开之后把数组2,3进行替换就可以了或组合0,1数组就可以了。
希望本文所述对大家的php程序设计有所帮助。
5. php获取数组长度的方法(有实例)
在PHP中,获取数组长度的方法非常直观,主要依赖于`count()`和`sizeof()`这两个函数。它们均能有效地统计一维数组元素的数量,返回值为0表示数组为空。尽管手册上提到`sizeof()`是`count()`的别名,但在处理多维数组时,`count()`的第二个参数起了关键作用。默认情况下(参数为0或COUNT_NORMAL),`count()`不检测多维数组,但如果需要递归统计,参数应设置为1(或COUNT_RECURSIVE)。
例如,对于二维数组`$arr`,若直接使用`count($arr)`,结果可能因PHP版本不同而异。为确保正确处理多维数组,可以添加一个条件判断,如下所示:
php
if (is_array($arr) && count($arr, COUNT_NORMAL) > 0) {
// 处理数组内容
} else {
// 处理空数组或非数组情况
}
// 测试代码
$arr = array(
0 => array('title' => '新闻1', 'viewnum' => 123, 'content' => 'ZAQXSWedcrfv'),
1 => array('title' => '新闻2', 'viewnum' => 99, 'content' => 'QWERTYUIOPZXCVBNM')
);
echo '不统计多维数组:' . count($arr, 0) . '
';
echo '统计多维数组:' . count($arr, 1);
通过设置不同的参数,我们可以准确地获取不同情况下的数组长度,无论是简单的一维数组还是复杂多维数组。
6. php去掉一维数组的键值的实例方法
在 PHP 中,数组的每个元素都是由键值对(key-value)组成,通过元素的键名来访问对应键的值。
提示:“索引”和“键名”指的是同一样东西,“索引”多指数组数字形式的下标。
有时候,我们需要去掉一维数组的键值(value),只留下数组的键名(key),这要怎么做?
此时,就可以使用array_keys()函数了。
array_key() 函数可以获取数组中的部分或所有键名,语法格式如下:
array_keys($array [, $search_value = null [, $strict = false]])参数说明如下:
$array:必选参数,为待操作的数组;
$search_value:可选参数,如果参数为空,则函数会返回数组中的所有键名,如果指定了该参数,则函数就只会返回值为 $search_value 的键名;
$strict:可选参数,判断在搜索的时候是否使用严格模式,$strict 默认为 false,也就是非严格模式,在搜索时只比较类型,不比较类型,若将 $strict 设置为 true,也就是严格模式,在搜索时同时比较值和类型,等价于===。
array_key() 函数会以数组形式返回得到的数组键名。
'it网', 'url' => 'https://www.how234.com/', 'title' => 'PHP学习教程', ); $key=array_keys($array); var_mp($key); ?>可以看到,去掉了一维数组的键值(value),只返回了一维数组的键名(key)。
内容扩展:
1、使用unset()函数可以用于取消设置关联数组中的键及其值。
// 声明关联数组 $arr = array( "1" => "加", "2" => "减", "3" => "乘", "4" => "除" ); // 关联数组中删除键1及其值 unset($arr['1']); // 显示数组元素 var_mp($arr);2、使用array_diff_key()函数用于获取一个或多个数组之间的差集。
此函数比较一个或多个数组之间的键并返回它们之间的差集。
// 声明关联数组 $arr = array( "1" => "春", "2" => "夏", "3" => "秋", "4" => "冬", ); // 从关联数组中删除键1及其值 $result = array_diff_key($arr, array_flip((array) ['1'])); // 显示数组元素 var_mp($result);到此这篇关于php去掉一维数组的键值的实例方法的文章就介绍到这了。