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 信息采集程序代码
Mar 17 PHP
php array_map array_multisort 高效处理多维数组排序
Jun 11 PHP
PHP+MySQL投票系统的设计和实现分享
Sep 23 PHP
解决File size limit exceeded 错误的方法
Jun 14 PHP
php生成txt文件标题及内容的方法
Jan 16 PHP
php 生成自动创建文件夹并上传文件的示例代码
Mar 07 PHP
修改destoon会员公司的伪静态中的com目录的方法
Aug 21 PHP
关于ThinkPHP中的异常处理详解
May 11 PHP
PHP7 安装event扩展的实现方法
Oct 08 PHP
Laravel开启跨域请求的方法
Oct 13 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
Feb 15 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者的疑难问答(2)
2006/10/09 PHP
一个用php实现的获取URL信息的类
2007/01/02 PHP
Discuz!下Memcache缓存实现方法
2010/05/28 PHP
教你如何使用php session
2013/10/28 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
用ASP将SQL搜索出来的内容导出为TXT的代码
2007/07/27 Javascript
Javascript 获取滚动条位置等信息的函数
2009/09/08 Javascript
jquery 查找iframe父级页面元素的实现代码
2011/08/28 Javascript
关于jquery中全局函数each使用介绍
2013/12/10 Javascript
jQuery DOM插入节点操作指南
2015/03/03 Javascript
Jquery中request和request.form和request.querystring的区别
2015/11/26 Javascript
基于javascript实现动态时钟效果
2020/08/18 Javascript
Web前端开发之水印、图片验证码
2016/11/27 Javascript
JavaScript数据结构之二叉树的查找算法示例
2017/04/13 Javascript
Vue.js 2.0学习教程之从基础到组件详解
2017/04/24 Javascript
vue.js组件之间传递数据的方法
2017/07/10 Javascript
jquery ajaxfileupload异步上传插件
2017/11/21 jQuery
从零开始最小实现react服务器渲染详解
2018/01/26 Javascript
浅谈vue.js导入css库(elementUi)的方法
2018/03/09 Javascript
jquery实现搜索框功能实例详解
2018/07/23 jQuery
pyqt4教程之实现半透明的天气预报界面示例
2014/03/02 Python
Python爬虫框架Scrapy实战之批量抓取招聘信息
2015/08/07 Python
python中range()与xrange()用法分析
2016/09/21 Python
Python编写一个验证码图片数据标注GUI程序附源码
2019/12/09 Python
python如何写出表白程序
2020/06/01 Python
浅谈Keras中shuffle和validation_split的顺序
2020/06/19 Python
Python selenium如何打包静态网页并下载
2020/08/12 Python
美国百年历史早餐食品供应商:Wolferman’s
2017/01/18 全球购物
英国最受信任的在线眼镜商之一:Fashion Eyewear
2019/10/31 全球购物
普师专业个人自荐信范文
2013/11/26 职场文书
师范学院教师自荐书
2014/01/31 职场文书
水电工程师岗位职责
2015/02/13 职场文书
免职通知
2015/04/23 职场文书
学校2016年九九重阳节活动总结
2016/04/01 职场文书
聊聊Lombok中的@Builder注解使用教程
2021/11/17 Java/Android
MySQL优化及索引解析
2022/03/17 MySQL