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文件怎么打开 如何执行php文件
Dec 21 PHP
php 操作符与控制结构
Mar 07 PHP
phpize的深入理解
Jun 03 PHP
基于PHP的简单采集数据入库程序
Jul 30 PHP
php实现约瑟夫问题的方法小结
Mar 23 PHP
再推荐十款免费的php开发工具
Nov 09 PHP
php版微信自动登录并获取昵称的方法
Sep 23 PHP
thinkPHP5框架实现基于ajax的分页功能示例
Jun 12 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
Aug 21 PHP
PHP PDOStatement::columnCount讲解
Jan 30 PHP
Laravel框架控制器的request与response用法示例
Sep 30 PHP
解决laravel id非自增 模型取回为0 的问题
Oct 11 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
Java和PHP在Web开发方面对比分析
2015/03/01 PHP
php压缩和解压缩字符串的方法
2015/03/14 PHP
浅谈PHP eval()函数定义和用法
2016/06/21 PHP
PHPCMS忘记后台密码的解决办法
2016/10/30 PHP
使用php完成常见的文件上传功能(推荐)
2017/01/13 PHP
基于jquery1.4.2的仿flash超炫焦点图播放效果
2010/04/20 Javascript
js简单实现让文本框内容逐个字的显示出来
2013/10/22 Javascript
js弹出div并显示遮罩层
2014/02/12 Javascript
jQuery防止click双击多次提交及传递动态函数或多参数
2014/04/02 Javascript
原生js实现移动开发轮播图、相册滑动特效
2015/04/17 Javascript
详细分析使用AngularJS编程中提交表单的方式
2015/06/19 Javascript
js+css实现超简洁的二级下拉菜单效果代码
2015/09/07 Javascript
微信小程序实现动态设置placeholder提示文字及按钮选中/取消状态的方法
2017/12/14 Javascript
vue实现点击展开点击收起效果
2018/04/27 Javascript
JavaScript Canvas实现验证码
2020/08/02 Javascript
微信二次分享报错invalid signature问题及解决方法
2019/04/01 Javascript
解决echarts 一条柱状图显示两个值,类似进度条的问题
2020/07/20 Javascript
NestJs使用Mongoose对MongoDB操作的方法
2021/02/22 Javascript
[01:32]dota2拉比克至宝(222)
2018/12/20 DOTA
python3.6.3+opencv3.3.0实现动态人脸捕获
2018/05/25 Python
python构建基础的爬虫教学
2018/12/23 Python
Python实现的大数据分析操作系统日志功能示例
2019/02/11 Python
python对绑定事件的鼠标、按键的判断实例
2019/07/17 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
2019/08/24 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
2020/06/03 Python
区分python中的进程与线程
2020/08/13 Python
举例讲解Python装饰器
2020/12/24 Python
奥地利票务门户网站:oeticket.com
2019/12/31 全球购物
波兰汽车配件网上商店:iParts.pl
2020/09/08 全球购物
垃圾回收的优点和原理
2014/05/16 面试题
见习期自我鉴定
2013/11/07 职场文书
岗位竞聘演讲稿范文
2014/04/24 职场文书
群众路线查摆问题整改措施思想汇报
2014/10/10 职场文书
2014年售后服务工作总结
2014/11/18 职场文书
早恋主题班会
2015/08/14 职场文书
新西兰:最新留学学习计划书写作指南
2019/07/15 职场文书