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和AJAX创建RSS聚合器的代码
Mar 13 PHP
使用PHP获取汉字的拼音(全部与首字母)
Jun 27 PHP
PHP打开和关闭文件操作函数总结
Nov 18 PHP
PHP实现的简单三角形、矩形周长面积计算器分享
Nov 18 PHP
PHP+Ajax 检测网络是否正常实例详解
Dec 16 PHP
PHP机器学习库php-ml的简单测试和使用方法
Jul 14 PHP
phpStudy 2016 使用教程详解(支持PHP7)
Oct 18 PHP
Laravel学习教程之request validation的编写
Oct 25 PHP
PHP实现的获取文件mimes类型工具类示例
Apr 08 PHP
php两点地理坐标距离的计算方法
Dec 29 PHP
PHP函数用法详解【初始化、嵌套、内置函数等】
Jun 02 PHP
详解php中流行的rpc框架
May 29 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的性能
2013/10/30 PHP
php bootstrap实现简单登录
2016/03/08 PHP
PHP实现权限管理功能示例
2017/09/22 PHP
jquery 操作日期、星期、元素的追加的实现代码
2012/02/07 Javascript
jquery操作复选框(checkbox)的12个小技巧总结
2014/02/04 Javascript
jquery模拟LCD 时钟的html文件源代码
2014/06/16 Javascript
JavaScript中的比较操作符&gt;、=、
2014/12/31 Javascript
AngularJS + Node.js + MongoDB开发的基于高德地图位置的通讯录
2015/01/02 Javascript
使用postMesssage()实现iframe跨域页面间的信息传递
2016/03/29 Javascript
AngularJS基础 ng-mousemove 指令简单示例
2016/08/02 Javascript
KnockoutJS 3.X API 第四章之表单value绑定
2016/10/10 Javascript
激动人心的 Angular HttpClient的源码解析
2017/07/10 Javascript
webpack 1.x升级过程中的踩坑总结大全
2017/08/09 Javascript
JS基于正则表达式实现的密码强度验证功能示例
2017/09/21 Javascript
Koa项目搭建过程详细记录
2018/04/12 Javascript
详解Bootstrap 学习(一)入门
2019/04/12 Javascript
Fetch超时设置与终止请求详解
2019/05/18 Javascript
JQuery样式与属性设置方法分析
2019/12/07 jQuery
使用 Jest 和 Supertest 进行接口端点测试实例详解
2020/04/25 Javascript
[52:03]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第三场 1月31日
2021/03/11 DOTA
python实现百度关键词排名查询
2014/03/30 Python
Python语言的12个基础知识点小结
2014/07/10 Python
python获取一组汉字拼音首字母的方法
2015/07/01 Python
python TCP Socket的粘包和分包的处理详解
2018/02/09 Python
对python pandas读取剪贴板内容的方法详解
2019/01/24 Python
基于python实现简单网页服务器代码实例
2020/09/14 Python
Python 字典一个键对应多个值的方法
2020/09/29 Python
python3排序的实例方法
2020/10/20 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
2020/12/15 Python
美国知名平价彩妆品牌:e.l.f. Cosmetics
2017/11/20 全球购物
品质标语大全
2014/06/21 职场文书
会议欢迎标语
2014/06/30 职场文书
法人委托书
2014/07/31 职场文书
新党章的学习心得体会
2014/11/07 职场文书
总结Python常用的魔法方法
2021/05/25 Python
PHP遍历数组的6种方式总结
2021/11/17 PHP