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 相关文章推荐
基于mysql的论坛(4)
Oct 09 PHP
PHP 文件缓存的性能测试
Apr 25 PHP
提高define性能的php扩展hidef的安装和使用
Jun 14 PHP
php array_walk() 数组函数
Jul 12 PHP
ThinkPHP视图查询详解
Jun 30 PHP
linux下编译安装memcached服务
Aug 03 PHP
php输出xml必须header的解决方法
Oct 17 PHP
PHP中使用正则表达式提取中文实现笔记
Jan 20 PHP
php去除字符串中空字符的常用方法小结
Mar 17 PHP
浅谈PHP值mysql操作类
Jun 29 PHP
php简单解析mysqli查询结果的方法(2种方法)
Jun 29 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
Mar 04 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
用C/C++扩展你的PHP 为你的php增加功能
2012/09/06 PHP
PHP中使用SimpleXML检查XML文件结构实例
2015/01/07 PHP
php实现将字符串按照指定距离进行分割的方法
2015/03/14 PHP
2017年最新PHP经典面试题目汇总(上篇)
2017/03/17 PHP
PHP基于简单递归函数求一个数阶乘的方法示例
2017/04/26 PHP
php5.6.x到php7.0.x特性小结
2019/08/17 PHP
PHP实现批量修改文件名的方法示例
2019/09/18 PHP
解决表单中第一个非隐藏的元素获得焦点的一个方案
2009/10/26 Javascript
转换json格式的日期为Javascript对象的函数
2010/07/13 Javascript
jQuery实现类似淘宝购物车全选状态示例
2013/06/26 Javascript
JS按字节截取字符长度实例
2013/11/20 Javascript
教你如何使用node.js制作代理服务器
2014/11/26 Javascript
javascript实现详细时间提醒信息效果的方法
2015/03/11 Javascript
JS+CSS实现六级网站导航主菜单效果
2015/09/28 Javascript
jQuery获取复选框被选中数量及判断选择值的方法详解
2016/05/25 Javascript
[原创]JS基于FileSaver.js插件实现文件保存功能示例
2016/12/08 Javascript
详解JS: reduce方法实现 webpack多文件入口
2017/02/14 Javascript
javascript回调函数的概念理解与用法分析
2017/05/27 Javascript
jquery获取transform里的值实现方法
2017/12/12 jQuery
webpack本地开发环境无法用IP访问的解决方法
2018/03/20 Javascript
[02:48]DOTA2英雄基础教程 暗夜魔王
2013/12/12 DOTA
python中如何正确使用正则表达式的详细模式(Verbose mode expression)
2017/11/08 Python
python3.6根据m3u8下载mp4视频
2019/06/17 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
2020/02/11 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
2020/04/16 Python
Pytorch 使用 nii数据做输入数据的操作
2020/05/26 Python
Matplotlib 折线图plot()所有用法详解
2020/07/28 Python
Python 操作 MySQL数据库
2020/09/18 Python
css3 中translate和transition的使用方法
2020/03/26 HTML / CSS
如果Session Bean得Remove方法一直都不被调用会怎么样
2012/07/14 面试题
AJAX检测用户名是否存在的方法
2021/03/24 Javascript
应届生服装设计自我评价
2013/09/20 职场文书
水电工岗位职责
2014/02/12 职场文书
婚礼父母答谢词
2015/01/04 职场文书
一年级数学上册复习计划
2015/01/17 职场文书
沈阳故宫导游词
2015/01/31 职场文书