php二维数组的合并2种方法
例1
自定义方法合并数组
先看一个二维数组:
代码如下 | 复制代码 |
<?php [0] => Array ( [A] => store_name [B] => 商店一 ) [1] => Array ( [A] => store_owner [B] => 小风 ) [2] => Array ( [A] => store_name [B] => 商店二 ) [3] => Array ( [A] => store_owner [B] => 小磊 ) ?> 大家会发现里面有两个 store_name 和 store_owner ,所以我想让他们合并成下面这样 <?php Array ( [0] => Array ( [A] => 商店一 [B] => 小风 ) [1] => Array ( [A] => 商店二 [B] => 小磊 ) ?> |
合并方法如下:
代码如下 | 复制代码 |
<?php ?> |
这样就可以得到上面的结果了!
为了让大家看的更清楚写 我把数据库表结构写出来 主要字段如下:
key value
store_name 网店一
store_owner 小风
store_name 网店二
store_owner 小磊
通过上面 的方法做过后 前台页面就可以以一排的方式显示了,如下
name owner
网店一 小风
网店二 小磊
例3
代码如下 | 复制代码 |
<?php 1 => array( |
Base64编码文件二进制流是使用base64_encode函数对文件二进制信息进行编码。
官方说明
base64_encode — 使用 MIME base64 对数据进行编码
Report a bug 说明
string base64_encode ( string $data )
使用 base64 对 data 进行编码。
设计此种编码是为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的主体。
Base64-encoded 数据要比原始数据多占用 33% 左右的空间。
具体方式为:
代码如下 | 复制代码 |
$path = 'image.jpg'; // echo $content; 上述程序输出的结果类似:R0lGODlhEAAQAJECAISEhAAAhP///wAAACH5BAEAAAIALAAAAAAQABAAAAImlI |
这样我们成功将一个文件转换成了字符串。
解码过程非常简单,使用base64_decode($content)即可。
上述处理过程主要用途有:
1、接口传输
主要适用于通过WEB接口将文件从一个站点向另一个站点传输,可以用于XML信息。
2、存入数据库
当然,将图片等文件信息保存到数据库中完全可以不用这么做,但这种方式依然适用。对于数据库新手来说这种方式更可接受。因为这完全是一个字符串。
3、文件加密
文件加密可大家用得比较少,举个例子,假如我们有一套PHP程序需要保护,必须有授权码的用户才能正常运行,那么我们可能使用授权码来对文件进行加密,即将上述编码后的字符串再次加工。运行过程需要授权码才可运行。
当然还有其它用途,根据各人的需要灵活使用。
在php中使用引用赋值只需要在原始对象前加个&就可以了,$a = &$b;其实php中的引用就是两个不同名称的变量指向同一个值。引用是什么
在 PHP 中引用意味着用不同的名字访问同一个变量内容。这并不像 C 的指针,替代的是,引用是符号表别名。注意在 PHP 中,变量名和变量内容是不一样的,因此同样的内容可以有不同的名字。最接近的比喻是 Unix 的文件名和文件本身——变量名是目录条目,而变量内容则是文件本身。引用可以被看作是 Unix 文件系统中的 hardlink。
一:变量的引用
代码如下 | 复制代码 |
<?php $a =100; $b = &$a; echo $b; //这里输出100 echo $a; //这里输出100 ,说明$a,和$b的值都是一百。 $b= 200; echo $a; //这里输出200 echo $b; //这里输出200,这就可以看出他们用的是同一个地址。改变一个,另一个也会跟着改变。 ?> |
二:函数中引用传值。
代码如下 | 复制代码 |
<?php |
三:对象的引用传值
对象的引用
代码如下 | 复制代码 |
<? class club{ var $name="real madrid"; } $b=new club; $c=$b; echo $b->name;//这里输出real madrid echo $c->name;//这里输出real madrid $b->name="ronaldo"; echo $c->name;//这里输出ronaldo ?> |
取消引用
当你 unset 一个引用,只是断开了变量名和变量内容之间的绑定。这并不意味着变量内容被销毁了。例如:
代码如下 | 复制代码 |
<?php |
不会 unset $b,只是 $a。
例,引用传递
test1.php
代码如下 | 复制代码 |
<?php |
test2.php
代码如下 | 复制代码 |
<?php |
引用返回
引用返回用在当想用函数找到引用应该被绑定在哪一个变量上面时。不要用返回引用来增加性能,引擎足够聪明来自己进行优化。仅在有合理的技术原因时才返回引用!要返回引用,使用此语法
代码如下 | 复制代码 |
<?php function &test() { static $b=0;//申明一个静态变量 $b=$b+1; echo $b; return $b; } $a=test();//这条语句会输出 $b的值 为1 $a=5; $a=test();//这条语句会输出 $b的值 为2 $a=&test();//这条语句会输出 $b的值 为3 这里将return $b中的 $b变量的内存地址与$a变量的内存地址 指向了同一个地方 $a=5; //已经改变了 return $b中的 $b变量的值 $a=test();//这条语句会输出 $b的值 为6 /** |
下面解释下:
通过这种方式$a=test();得到的其实不是函数的引用返回,这跟普通的函数调用没有区别 至于原因: 这是PHP的规定
PHP规定通过$a=&test(); 方式得到的才是函数的引用返回
至于什么是引用返回呢(PHP手册上说:引用返回用在当想用函数找到引用应该被绑定在哪一个变量上面时。) 这句狗屁话 害我半天没看懂
用上面的例子来解释就是
$a=test()方式调用函数,只是将函数的值赋给$a而已, 而$a做任何改变 都不会影响到函数中的$b
而通过$a=&test()方式调用函数呢, 他的作用是 将return $b中的 $b变量的内存地址与$a变量的内存地址 指向了同一个地方
即产生了相当于这样的效果($a=&$b;) 所以改变$a的值 也同时改变了$b的值 所以在执行了
$a=&test();
$a=5;
以后,$b的值变为了5
这里是为了让大家理解函数的引用返回才使用静态变量的,其实函数的引用返回多用在对象中
*/
?>
在举一个有意思的例子是在oschina上看到的:
代码如下 | 复制代码 |
<?php |
will result in:
ABE
BEN
BEN
Array
(
[0] => ABE
[1] => BEN
[2] => BEN
)
解释: 在第二个foreach中循环如下:
Array
(
[0] => ABE
[1] => BEN
[2] => ABE
)
Array
(
[0] => ABE
[1] => BEN
[2] => BEN
)
Array
(
[0] => ABE
[1] => BEN
[2] => BEN
)
因为没有unset($n),所以它始终指向数组的最后一个元素,第二个foreach里第一次循环把$n,也就是$a[2]改成了ABE,第二次循环改成了BEN,第三次就也是BEN了。
本文章来给各位同学介绍php数据类型转换学习笔记,如果你对php数据类型了解不清楚可进入参考哦。常用的数据类型有字符串型、浮点型(单精度浮点型float、双精度浮点型double)、整形、布尔型
1 其他类型转化为整型
1.1 字符串型转化为整型
1.1.1 如果字符串全部为数字,则直接全部转换为整型,如果有小数点则会去除小数点后面的内容,如 '12' 跟 '12.3' 转换为整型后都为12
1.1.2 如果字符串以字母开头则不管中间或后面有多少数字或小数点,转换为整形后都为0。如'ab12.3c'转换为整型后为0
1.1.3 如果以数字开头,则会去掉数字后面的字符,如果有小数点则去除小数点后面的。如 '123.4abc' 、 '123abc' 转换为整形后都为123
1.2 浮点型转化为整型
1.2.1 如果浮点数含有小数点则去掉小数点后面的字符,如果没有则直接变为整型 。如:浮点数 12.6 转换为整形后为12
1.3 布尔型转化为整型
1.3.1 布尔型转换为整型时,true会转换为 1 false 会转换为 0其中NULL转换为整型后为0 所以如果要判断 if(NULL == 0){echo "NULL等于0";} 是会返回NULL等于0的
2 其他类型转化为字符串型
2.1 整型、浮点型转换为字符串型是直接在数字上加引号 如12 12.3 转换为字符串后为 "12" "12.3"
2.2 布尔型转换为字符串是,true会转换成字符串"1",false 跟NULL转换为字符串结果为空字符串,不会有输出
3 其他类型转化为浮点型
3.1 整型直接转化为浮点型,数值不变,字符串转换为浮点型跟字符串转换为整型基本上是一样的,只不过是当字符串之间有小数点时,小数点会保存。如 “12.3abc” 转换之后为 12.3 其他形式的是一样的方法
3.2 布尔型转换为浮点型是,true会转换成浮点型 1 ,false 跟NULL转换为浮点型结果为0
4 其他类型转化为布尔型
4.1 空字符串转换为 布尔型为FALSE,非空为TRUE;整型跟浮点型的0转换为布尔型为FALSE,其他为TRUE
4.2 NULL转换为布尔型后结果为FALSE
PHP的数据类型转换属于强制转换,允许转换的PHP数据类型有:
•(int)、(integer):转换成整形
•(float)、(double)、(real):转换成浮点型
•(string):转换成字符串
•(bool)、(boolean):转换成布尔类型
•(array):转换成数组
•(object):转换成对象
PHP数据类型有三种转换方式:
•在要转换的变量之前加上用括号括起来的目标类型
•使用3个具体类型的转换函数,intval()、floatval()、strval()
•使用通用类型转换函数settype(mixed var,string type)
第一种转换方式: (int) (bool) (float) (string) (array) (object)
代码如下 | 复制代码 |
1.<?php 2.$num1=3.14; 3.$num2=(int)$num1; 4.var_dump($num1); //输出float(3.14) 5.var_dump($num2); //输出int(3) 6.?> |
第二种转换方式: intval() floatval() strval()
代码如下 | 复制代码 |
1.<?php 2.$str=”123.9abc”; 3.$int=intval($str); //转换后数值:123 4.$float=floatval($str); //转换后数值:123.9 5.$str=strval($float); //转换后字符串:”123.9″ 6.?> |
第三种转换方式: settype();
代码如下 | 复制代码 |
1.<?php |
php 中可以使用shuffle函数实现数组随机排序功能。
代码如下 | 复制代码 |
<?php |
相关文章
- 在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
php 中file_get_contents超时问题的解决方法
file_get_contents超时我知道最多的原因就是你机器访问远程机器过慢,导致php脚本超时了,但也有其它很多原因,下面我来总结file_get_contents超时问题的解决方法总结。...2016-11-25- php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
- 这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
- 相信很多站长都遇到过这样一个问题,访问页面时出现408错误,下面一聚教程网将为大家介绍408错误出现的原因以及408错误的解决办法。 HTTP 408错误出现原因: HTT...2017-01-22
- 下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
- ps软件是现在非常受大家喜欢的一款软件,有着非常不错的使用功能。这次文章就给大家介绍下ps把文字背景变透明的操作方法,喜欢的一起来看看。 1、使用Photoshop软件...2017-07-06
- 本文章提供在量的数据中级操作实例有如对键名比较计算数组的差集 计算差集 给指定数组中插入一个元素 反转数组 交集赋值新的数组实例。 //定义回调函数 funct...2016-11-25
intellij idea快速查看当前类中的所有方法(推荐)
这篇文章主要介绍了intellij idea快速查看当前类中的所有方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-09-02- 这篇文章主要介绍了C#二维数组基本用法,以实例形式分析了C#中二维数组的定义、初始化、遍历及打印等用法,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 1.在没有设置默认值的情况下: 复制代码 代码如下:SELECT userinfo.id, user_name, role, adm_regionid, region_name , create_timeFROM userinfoLEFT JOIN region ON userinfo.adm_regionid = region.id 结果:...2014-05-31
- 下面一段代码给大家介绍php curl模拟post请求的示例代码,具体代码如下: <?php$uri = "http://www.cnblogs.com/test.php";//这里换成自己的服务器的地址// 参数数组$data = array ( 'name' => 'tanteng'// 'passwor...2015-11-24
js导出table数据到excel即导出为EXCEL文档的方法
复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta ht...2013-10-13- Array数组在C#中同样是最基本的数据结构,下面为大家C#数组的常用操作方法小结,皆为细小的代码段,欢迎收看收藏...2020-06-25
- 批量更新mysql更新语句很简单,更新一条数据的某个字段,一般这样写:复制代码 代码如下:UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value';如果更新同一字段为同一个值,mysql也很简单,修改下where即...2013-10-04
- ps软件是一款非常不错的图片处理软件,有着非常不错的使用效果。这次文章要给大家介绍的是ps怎么制作倒影,一起来看看设计倒影的方法。 用ps怎么做倒影最终效果̳...2017-07-06
- 本文涉及的主题虽然很基础,在许多人看来属于小伎俩,但在JavaScript基础知识中属于一个综合性的话题。这里会涉及到对象属性的封装、原型、构造函数、闭包以及立即执行表达式等知识。公有方法 公有方法就是能被外部访问...2015-11-08
安卓手机wifi打不开修复教程,安卓手机wifi打不开解决方法
手机wifi打不开?让小编来告诉你如何解决。还不知道的朋友快来看看。 手机wifi是现在生活中最常用的手机功能,但是遇到手机wifi打不开的情况该怎么办呢?如果手机wifi...2016-12-21- 最近想自学PHP ,做了个验证码,但不知道怎么搞的,总出现一个如下图的小红叉,但验证码就是显示不出来,原因如下 未修改之前,出现如下错误; (1)修改步骤如下,原因如下,原因是apache权限没开, (2)点击打开php.int., 搜索extension=ph...2013-10-04
- 单个字符分割 string s="abcdeabcdeabcde"; string[] sArray=s.Split('c'); foreach(string i in sArray) Console.WriteLine(i.ToString()); 输出下面的结果: ab de...2020-06-25