PHP数组与字符串互相转换实例


Posted in PHP onMay 05, 2020

PHP 数组转字符串,与字符串转数组

<?php
 
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
 
echo $comma_separated; // lastname,email,phone
 
// Empty string when using an empty array:
var_dump(implode('hello', array())); // string(0) ""
 
?>

explode — 使用一个字符串分割另一个字符串,返回一个数组

<?php
// 示例 1
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
 
// 示例 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *

?>

这里如果字符串没有任何符号可以进行分割的话,就需要考虑别的方法了

str_split — 将字符串转换为数组

<?php
 
$str = "Hello Friend";
 
$arr1 = str_split($str);
$arr2 = str_split($str, 3);
 
print_r($arr1);
print_r($arr2);
 
?>
输出结果
Array
(
  [0] => H
  [1] => e
  [2] => l
  [3] => l
  [4] => o
  [5] =>
  [6] => F
  [7] => r
  [8] => i
  [9] => e
  [10] => n
  [11] => d
)
 
Array
(
  [0] => Hel
  [1] => lo
  [2] => Fri
  [3] => end
)

如果不兼容的话,就只有考虑别的方法了,将字符串逐位进行打断,

这里有一个将字符串进行打断的手动的方法,是原来为了写日语半角的假名验证的一个方法

这里是一串对半角的假名的枚举

function kana_Perl($katakana){
  $katakana_array = array(
    1=>"ア",2=>"イ",3=>"ウ",4=>"エ",5=>"オ",
    6=>"カ",7=>"キ",8=>"ク",9=>"ケ",10=>"コ",
    11=>"サ",12=>"シ",13=>"ス",14=>"セ",15=>"ソ",
    16=>"タ",17=>"チ",18=>"ツ",19=>"テ",20=>"ト",
    21=>"ナ",22=>"ニ",23=>"ヌ",24=>"ネ",25=>"ノ",
    26=>"ハ",27=>"ヒ",28=>"フ",29=>"ヘ",30=>"ホ",
    31=>"マ",32=>"ミ",33=>"ム",34=>"メ",35=>"モ",
    36=>"ヤ",37=>"ユ",38=>"ヨ",
    39=>"ラ",40=>"リ",41=>"ル",42=>"レ",43=>"ロ",
    44=>"ワ",45=>"ヲ",46=>"ン",
    47=>"ァ",48=>"ィ",49=>"ゥ",50=>"ェ",51=>"ォ",
    52=>"ャ",53=>"ュ",54=>"ョ",55=>"ッ",56=>"、",
    57=>"。",58=>"ー",59=>"゙",60=>"゚"
    );
     $check_result  = array_search($katakana,$katakana_array);
     return $check_result;
  }

这是一段匹配的法则,注意这里是i +=2,因为一个文字占2位

function substr_cut($katakana){
  $i_end = 2;
  $check_sucess = "";
  for($i_start=0; $i_start < strlen($katakana); $i_start=$i_start+2){
     
    $str_cut = substr($katakana,$i_start,$i_end);
    echo '$str_cut='.$str_cut.'<br>';
    $check_sucess = kana_Perl($str_cut);
    if(!$check_sucess){
      break;
    }
     
 
  }
  return $check_sucess;
}

没有规律的数组转化为字符串

function substr_cut($katakana){
  $i_end = 1; //打断位数长度,分清楚英文和中文
  $check_sucess = array();
  for($i_start=0; $i_start < strlen($katakana); $i_start=$i_start+1){    
    $str_cut = substr($katakana,$i_start,$i_end);
    $check_sucess[$i_start] = $str_cut;
    echo '$str_cut='.$str_cut.'<br>';
  }
  return $check_sucess;
}

内容扩展:

使用和理解这两个函数的关键之处是分隔符(separator)和胶合符(glue)关系。当把一个数组转换成一个字符串时,将会设置胶合符——将被插入到生成字符串中的数组值之间的字符或代码。

相反,当把字符串转换成数组时,要指定分隔符,它用于标记什么应该变成独立数组元素。例如,以字符串开始:

$s1='Mon-Tue-Wed-Thu-Fri';

$days_array=explode('-',$s1);

$days_array 变量现在是一个有5个元素的数组,其元素 Mon 的索引为0,Tue 的索引为1,等等。

$s2=implode(',',$days_array);

$s2

变量现在是一个用逗号分隔的一个星期中各天的列表:Mon,Tue,Wed,Thu,Fri

到此这篇关于PHP数组与字符串互相转换实例的文章就介绍到这了,更多相关PHP数组与字符串转换内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
用Php实现链结人气统计
Oct 09 PHP
PHP 递归效率分析
Nov 24 PHP
php GeoIP的使用教程
Mar 09 PHP
php 发送带附件邮件示例
Jan 23 PHP
IIS下PHP的三种配置方式对比
Nov 20 PHP
php使用fputcsv()函数csv文件读写数据的方法
Jan 06 PHP
php通过asort()给关联数组按照值排序的方法
Mar 18 PHP
php多重接口的实现方法
Jun 20 PHP
PHP面向对象程序设计之命名空间与自动加载类详解
Dec 02 PHP
老生常谈PHP面向对象之标识映射
Jun 21 PHP
PHP长连接实现与使用方法详解
Feb 11 PHP
PHP判断函数是否被定义的方法
Jun 21 PHP
禁止直接访问php文件代码分享
May 05 #PHP
php将字符串转换为数组实例讲解
May 05 #PHP
php输出形式实例整理
May 05 #PHP
PHP设计模式(九)外观模式Facade实例详解【结构型】
May 02 #PHP
PHP设计模式(八)装饰器模式Decorator实例详解【结构型】
May 02 #PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
May 02 #PHP
PHP设计模式(六)桥连模式Bridge实例详解【结构型】
May 02 #PHP
You might like
PHP编码规范的深入探讨
2013/06/06 PHP
PHP生成条形图的方法
2014/12/10 PHP
CakePHP框架Model关联对象用法分析
2017/08/04 PHP
PHP封装的完整分页类示例
2018/08/21 PHP
浅析offsetLeft,Left,clientLeft之间的区别
2013/11/30 Javascript
一个js控制的导航菜单实例代码
2013/12/03 Javascript
javascript中parentNode,childNodes,children的应用详解
2013/12/17 Javascript
js的[defer]和[async]属性
2014/11/24 Javascript
AngularJS基础学习笔记之指令
2015/05/10 Javascript
基于javascript实现tab切换特效
2016/03/29 Javascript
bootstrap组件之导航组件使用方法
2017/01/19 Javascript
VSCode中如何利用d.ts文件进行js智能提示
2018/04/13 Javascript
VeeValidate在vue项目里表单校验应用案例
2018/05/09 Javascript
小程序实现分类页
2019/07/12 Javascript
vue2.0项目集成Cesium的实现方法
2019/07/30 Javascript
深入浅出vue图片路径的实现
2019/09/04 Javascript
Vue.js中Line第三方登录api的实现代码
2020/06/29 Javascript
js操作两个json数组合并、去重,以及删除某一项元素
2020/09/22 Javascript
python读写文件操作示例程序
2013/12/02 Python
go和python调用其它程序并得到程序输出
2014/02/10 Python
python实现在windows下操作word的方法
2015/04/28 Python
使用PIL(Python-Imaging)反转图像的颜色方法
2019/01/24 Python
python二维码操作:对QRCode和MyQR入门详解
2019/06/24 Python
Python项目跨域问题解决方案
2020/06/22 Python
详解CSS3 用border写 空心三角箭头 (两种写法)
2017/09/29 HTML / CSS
美国隐形眼镜网:Major Lens
2018/02/09 全球购物
英国乐购杂货:Tesco Groceries
2018/11/29 全球购物
经典优秀个人求职自荐信格式
2013/09/25 职场文书
幼儿园教师考核制度
2014/02/01 职场文书
哈弗商学院毕业生求职信
2014/02/26 职场文书
装修活动策划方案
2014/08/27 职场文书
毕业论文指导教师评语
2014/12/30 职场文书
小学语文教学随笔
2015/08/14 职场文书
严以修身专题学习研讨会发言材料
2015/11/09 职场文书
Nginx服务器如何设置url链接
2021/03/31 Servers
pycharm debug 断点调试心得分享
2021/04/16 Python