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 相关文章推荐
搜索和替换文件或目录的一个好类--很实用
Oct 09 PHP
?繁体转换的class
Oct 09 PHP
深入PHP magic quotes的详解
Jun 17 PHP
PHP获取数组中重复最多的元素的实现方法
Nov 11 PHP
PHP使用SOAP扩展实现WebService的方法
Apr 01 PHP
php将服务端的文件读出来显示在web页面实例
Oct 31 PHP
php二维码生成以及下载实现
Sep 28 PHP
CI框架(CodeIgniter)实现的数据库增删改查操作总结
May 23 PHP
php生成word并下载代码实例
Mar 15 PHP
PHP自动生成缩略图函数的源码示例
Mar 18 PHP
浅谈php调用python文件
Mar 29 PHP
PHP如何防止用户重复提交表单
Dec 09 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
搜索和替换文件或目录的一个好类--很实用
2006/10/09 PHP
抓取YAHOO股票报价的类
2009/05/15 PHP
php 获取本机外网/公网IP的代码
2010/05/09 PHP
wordpress安装过程中遇到中文乱码的处理方法
2015/04/21 PHP
jquery插件开发方法(初学者)
2012/02/03 Javascript
js不完美解决click和dblclick事件冲突问题
2012/07/16 Javascript
jquery实现将获取的颜色值转换为十六进制形式的方法
2014/12/20 Javascript
JavaScript使用shift方法移除素组第一个元素实例分析
2015/04/06 Javascript
简介AngularJS的视图功能应用
2015/06/17 Javascript
基于replaceChild制作简单的吞噬特效
2015/09/21 Javascript
JS中常用的正则表达式
2016/09/29 Javascript
Angular1.x复杂指令实例详解
2017/03/01 Javascript
node.js中cluster的使用教程
2017/06/09 Javascript
详解NODEJS基于FFMPEG视频推流测试
2017/11/17 NodeJs
详细分析单线程JS执行问题
2017/11/22 Javascript
浅谈Webpack核心模块tapable解析
2018/09/11 Javascript
多个vue子路由文件自动化合并的方法
2019/09/03 Javascript
js实现旋转的星空效果
2019/11/01 Javascript
[52:32]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第三场 11.18
2020/11/18 DOTA
Python求两个文本文件以行为单位的交集、并集与差集的方法
2015/06/17 Python
python 内置函数filter
2017/06/01 Python
Python对列表中的各项进行关联详解
2017/08/15 Python
Python编程实现线性回归和批量梯度下降法代码实例
2018/01/04 Python
解决Django中多条件查询的问题
2019/07/18 Python
多版本python的pip 升级后, pip2 pip3 与python版本失配解决方法
2019/09/11 Python
python向图片里添加文字
2019/11/26 Python
Python基于pygame实现单机版五子棋对战
2019/12/26 Python
Python如何读写二进制数组数据
2020/08/01 Python
Node.js 和 Python之间该选择哪个?
2020/08/05 Python
Canvas实现放大镜效果完整案例分析(附代码)
2020/11/26 HTML / CSS
英国奢侈品牌时尚购物平台:Farfetch(支持中文)
2020/02/18 全球购物
双创工作实施方案
2014/03/26 职场文书
小学三好学生事迹材料
2014/08/15 职场文书
党员年度个人总结
2015/02/14 职场文书
2015年乡镇残联工作总结
2015/05/13 职场文书
2016同学毕业寄语大全
2015/12/04 职场文书