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 相关文章推荐
56.com视频采集接口程序(PHP)
Sep 22 PHP
PHP写UltraEdit插件脚本实现方法
Dec 26 PHP
php对数组排序代码分享
Feb 24 PHP
PHP实现抓取HTTPS内容
Dec 01 PHP
php处理单文件、多文件上传代码分享
Aug 24 PHP
php 时间time与日期date之间的使用详解及区别
Nov 07 PHP
CI框架封装的常用图像处理方法(缩略图,水印,旋转,上传等)
Nov 22 PHP
PHP封装的多文件上传类实例与用法详解
Feb 07 PHP
老生常谈PHP中的数据结构:DS扩展
Jul 17 PHP
php简单中奖算法(实例)
Aug 15 PHP
php中html_entity_decode实现HTML实体转义
Jun 13 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
Mar 24 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
dedecms采集中可以过滤多行代码的正则表达式
2007/03/17 PHP
用PHP的超级变量$_GET获取HTML表单(Form) 数据
2011/05/07 PHP
浅析php fwrite写入txt文件的时候用 \r\n不能换行的问题
2013/08/06 PHP
php使用socket post数据到其它web服务器的方法
2015/06/02 PHP
分享php分页的功能模块
2015/06/16 PHP
在Mac上编译安装PHP7的开发环境
2015/07/28 PHP
php添加数据到xml文件的简单例子
2016/09/08 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
PHP使用Session实现上传进度功能详解
2019/08/06 PHP
Laravel6.2中用于用户登录的新密码确认流程详解
2019/10/16 PHP
JavaScript 提升运行速度之循环篇 译文
2009/08/15 Javascript
用JQuery在网页中实现分隔条功能的代码
2012/08/09 Javascript
详细分析Javascript中创建对象的四种方式
2016/08/17 Javascript
JSON中key动态设置及JSON.parse和JSON.stringify()的区别
2016/12/29 Javascript
详解JavaScript中js对象与JSON格式字符串的相互转换
2017/02/14 Javascript
想用好React的你必须要知道的一些事情
2017/07/24 Javascript
详解通过源码解析Node.js中cluster模块的主要功能实现
2018/05/16 Javascript
小程序如何支持使用 async/await详解
2019/09/12 Javascript
原生JS实现京东查看商品点击放大
2020/12/21 Javascript
Python基于tkinter模块实现的改名小工具示例
2017/07/27 Python
Python基于opencv的图像压缩算法实例分析
2018/05/03 Python
基于Python实现ComicReaper漫画自动爬取脚本过程解析
2019/11/11 Python
python基于openpyxl生成excel文件
2020/12/23 Python
CSS3哪些新特性值得称赞
2016/03/02 HTML / CSS
先进集体获奖感言
2014/02/13 职场文书
哈弗商学院毕业生求职信
2014/02/26 职场文书
2014年办公室文秘工作总结
2014/12/09 职场文书
华清池导游词
2015/02/02 职场文书
2015年班级工作总结范文
2015/04/03 职场文书
2015年大学学生会工作总结
2015/05/13 职场文书
运动员加油词
2015/07/18 职场文书
继续教育心得体会(共6篇)
2016/01/19 职场文书
创业计划书之寿司
2019/07/19 职场文书
Redis字典实现、Hash键冲突及渐进式rehash详解
2021/09/04 Redis
详解Python+OpenCV绘制灰度直方图
2022/03/22 Python
Kubernetes中Deployment的升级与回滚
2022/04/01 Servers