如何在第三次出现某些内容时分割字符串? [复制]

2023-12-25

我知道“爆炸”会分割字符串并将其转换为每次出现的数组。但是我如何在第三次出现时拆分并保留第三次出​​现后的所有内容?

实施例1:

$split = explode(':', 'abc-def-ghi::State.32.1.14.16.5:A);

我想要这样的输出:

echo $split[0];  // abc-def-ghi::State.32.1.14.16.5
echo $split[1];  // A

实施例2:

$split = explode(':', 'def-ghi::yellow:abc::def:B);

我想要这样的输出:

echo $split[0];  // def-ghi::yellow
echo $split[1];  // abc::def:B

使用分隔符分割字符串,并返回在第 n 次出现分隔符时分割的两个字符串。

  • 1) 使用分隔符进行爆炸。
  • 2) 如果设置了所需的数组条目,则找到该字符串在原始源中的位置。
  • 3)在该字符串的位置分成两个字符串。

eval.in 上的演示 https://eval.in/627116

Code:

<?php
/**
 * Split a string using a delimiter and return two strings split on the the nth occurrence of the delimiter.

 *  @param string  $source
 *  @param integer $index - one-based index
 *  @param char    $delimiter
 *
 * @return array  - two strings 
 */
function strSplit($source, $index, $delim)
{
  $outStr[0] = $source;
  $outStr[1] = '';

  $partials = explode($delim, $source);

  if (isset($partials[$index]) && strlen($partials[$index]) > 0) {
     $splitPos = strpos($source, $partials[$index]);

     $outStr[0] = substr($source, 0, $splitPos - 1);
     $outStr[1] = substr($source, $splitPos);
  }

  return $outStr;
}

Test:

$split = strSplit('abc-def-ghi::State.32.1.14.16.5:A', 3, ':');

var_dump($split);

$split1 = strSplit('def-ghi::yellow:', 3, ':');

var_dump($split, $split1);

Output:

array(2) {
  [0]=>
  string(31) "abc-def-ghi::State.32.1.14.16.5"
  [1]=>
  string(1) "A"
}
array(2) {
  [0]=>
  string(31) "abc-def-ghi::State.32.1.14.16.5"
  [1]=>
  string(1) "A"
}
array(2) {
  [0]=>
  string(16) "def-ghi::yellow:"
  [1]=>
  string(0) ""
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在第三次出现某些内容时分割字符串? [复制] 的相关文章

  • MySQL LAST_INSERT_ID() 和 FOUND_ROWS()

    当 PHP 脚本每秒有数百个查询时会发生什么 它会影响这些函数吗 是否保证它们会返回当前脚本中最后一个插入语句中最后插入的 id 它会返回当前脚本中最后一次选择的行数吗 如果同时从另一个脚本进行新的插入或选择 在 FOUND ROWS 的情
  • 动态重新定义 PHP 类函数?

    我试图弄清楚如何动态导入大量 PHP 类函数 例如 class Entity public function construct type require once type functions php person new Entity
  • 我可以在 php 中的 SESSION 数组上使用 array_push 吗?

    我有一个想要在多个页面上使用的数组 因此我将其设为 SESSION 数组 我想添加一系列名称 然后在另一个页面上 我希望能够使用 foreach 循环来回显该数组中的所有名称 这是会议 SESSION names 我想使用 array pu
  • 在 JAX-WS 中使用安全性的最佳实践是什么

    这是场景 我有一些需要保护的 Web 服务 JAX WS 目前 为了身份验证需求 我提供了额外的 SecurityWService 它为授权用户提供了一些需要在请求其他服务时描述的 userid 和 sessionid 使用一些java安全
  • Symfony/Doctrine 重新排列数据库列

    当我使用doctrine schema update命令行生成表时 Doctrine 或Symfony 似乎想要添加一个命令来重新排列我的列 将键放在它出现的前面 我想知道是否 更希望在哪里 我可以禁用环境的这个 功能 所以当我去生成我的表
  • 根据product_id获取magento产品的浏览次数

    我想在 Magento 的类别列表页面上显示查看计数 这些数据看起来过去可以通过 reports product collection 访问 但我找不到正确访问它的方法 我基本上想提供一个产品 ID 并获取返回给我的所述产品的观看次数 您可
  • 通过 PEAR 安装 PHPUnit

    我安装时遇到问题PHPUnit 3 4 6 via 梨1 9 0 当我发现频道后pear phpunit de并尝试使用以下命令之一 pear 安装 phpunit PHPUnit pear 安装 alldeps phpunit PHPUn
  • AJAX 安全问题

    我希望能够解决一些关于 AJAX 安全性的问题 这是我试图理解的一个场景 假设我正在使用 AJAX 向页面请求一些半敏感材料 例如 我将把用户的 ID 传递给一个 php 文件 并返回一些关于他们自己的信息 现在 是什么阻止人们模拟此 Ja
  • PHP:解析器 asp 页面 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 早上好 我可以用 php 解析一个
  • 如何将值发布到输入框中?

    Intro I would like to get the current time after clicking at click and POST the value into input text box Note 假设包含引导样式表
  • 计算帖子中使用 WordPress 短代码的次数

    我有以下 WordPress 短代码功能 function wp shortcode static i 1 return i i return return add shortcode shortcode wp shortcode 这很好用
  • 如何通过开始索引和结束索引提取子字符串?

    str HelloWorld sub substr str 3 5 echo sub prints loWor 我知道 substr 采用第一个参数 第二个参数是开始索引 而第三个参数是要提取的子字符串长度 我需要的是通过提取子字符串起始索
  • WordPress 子主题覆盖父主题包括

    我正在创建 WordPress 子主题 需要覆盖某些小部件模板 我正在尝试使用此方法来覆盖父主题调用 覆盖主题功能的正确方法 http www venutip com content right way override theme fun
  • PHP 使用主键和辅助键对多维数组进行排序[重复]

    这个问题在这里已经有答案了 如何按主键和辅助键对多维数组进行排序 例如 假设有以下数组 result array result 0 prio 1 result 0 date 2010 02 28 result 0 post February
  • 从 URL 任何文件类型创建图像

    我知道imagecreatefromgif https www php net manual en function imagecreatefromgif php imagecreatefromjpeg https www php net
  • MySQL如何从多个表中获取数据

    我正在寻找 php MySQL jquery 的帮助 我有2张桌子 table1表 1 有 4 列 id 标题 desc thumb img tabel2表 2 有 3 列 id 表 id img 我只想将 2 个表与 get QS 的值进
  • Symfony VS CakePHP:哪一个最接近 PHP [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我主要是一名 Rails 开发人员 但有时 我必须使用 PHP 进行编码 因为 stackoverflow com更喜欢可以回答的问题 我想知道
  • 无法访问 WordPress 中声明的全局变量

    我有以下代码 g value something print g value function get value global g value print g value print get value 当我在独立的 PHP 脚本中运行它
  • mysql_query 保留返回时在表中创建的数据类型?

    我在mysql中有一个表 CREATE TABLE user id INT name VARCHAR 250 我查询表 result mysql query SELECT id name FROM user 我收集结果 while row
  • 通过 Facebook 图 api 点赞帖子

    你好 我对 facebook PHP SDK 没有什么问题 我想通过 facebook PHP SDK 点赞帖子或其他内容 我正在执行此代码 我认为它应该是正确的 但显然它不起作用 给定的错误代码是的 PHP SDK不知道这种POST请求

随机推荐

  • 在打字稿中找不到名称“省略”

    背景 我正在定制我的index d ts文件于src types index d ts 我需要像下面这样合并我的类型 src types index d ts declare namespace Admin interface Initia
  • 不要在 Rails 生成控制器上创建视图文件夹

    当您运行时 有没有一种方法可以使用常用的生成器配置来关闭视图文件夹和操作模板的创建rails generate controller 我在任何地方都找不到选项和代码here https github com rails rails blob
  • 如何在 R 中使用 system() 或 shell() 执行 git-bash 命令

    我想运行一些命令git bash壳通过system or shell R 中的函数 我在 Windows 上 默认 shell 是命令提示符 有什么办法可以切换 shellsystem to git bash 谢谢 If your PATH
  • 在 C++ 中重塑张量

    TensorFlow 的 C 接口似乎没有 reshape 方法 有谁知道如何转换 例如 A B C D into A B C D 看起来唯一的方法就是使用 Eigen 然而 那里的文档非常薄弱 代码是模板地狱 不容易解析 检查重塑张量是否
  • 参考和盒子之间的可变性差异

    我试图了解 Rust 指针类型及其与可变性的关系 具体来说 声明一个保存指针且本身可变的变量的方法 即可以指向其他内存 并声明该变量数据本身是可变的 即可以改变through指针变量的值 这就是我对简单引用工作方式的理解 let mut a
  • 将 FlowDocument 转换为 PDF 的最佳方法是什么

    您会如何建议我将 FlowDocument 转换为 PDF 以附加到电子邮件中 FlowDocument 是动态的 而不是静态的 我希望能够将 PDF 作为 byte 存储在内存中 而不是存储在磁盘上 但这是可以协商的 感谢您的帮助 我假设
  • 情节小提琴情节太窄

    我正在尝试根据绘图文档示例构建多个分割小提琴图 我不知道为什么小提琴被水平地弄脏了 我包括了 violinmode overlay 这是另一个人曾经建议的 但它没有什么区别 下面是我正在使用的代码 lengthlm go Figure le
  • 检查两个图像文件是否相同..校验和或哈希值?

    我正在做一些图像处理代码 其中我从 URL 下载一些图像 如 BufferedImage 并将其传递到图像处理器 我想避免将同一图像多次传递给图像处理器 因为图像处理操作的成本很高 图像的 URL 端点 如果它们是相同的图像 可能会有所不同
  • 是否可以将 USB 设备暴露给 LXC/Docker 容器?

    我有一个包含在 Docker 文件中的嵌入式系统开发映像 为了刷新代码 我需要通过 USB 串行连接到节点 例如 dev ttyACM0 对于 Docker 我使用了新的绑定安装功能 请参阅https github com dotcloud
  • 以 NSDates 作为键的 NSDictionary

    是否有可能有一个 NSdictionary 其中键是 NSDates 并且可以将其写入 可存档到磁盘 不使用属性列表 因为那里只允许使用字符串键 你应该能够使用它来编写它NSKeyedArchiver 但这有一个缺点 那就是格式更加不透明
  • AttributeError:'bytes'对象没有属性'encode'

    尝试将代码从 python2 导入到 python 3 并发生此问题
  • Fiddler 使 HttpWebRequest/HttpClient 行为出现意外

    只是想问一下 在 Fiddler 启动时尝试将某些文件上传到服务器时 是否有人遇到使用 HttpWebRequest 类 甚至新的 HttpClient 的问题 我遇到了这个错误 即允许写入流缓冲的财产HttpWeb请求当 fiddler
  • 使用 numpy 进行图像翻译

    我想执行一定量的图像平移 垂直和水平移动图像 问题是 当我将裁剪后的图像粘贴回画布上时 我只是得到一个白色的空白框 有人能发现这里的问题吗 非常感谢 img shape image shape translate image percent
  • 在更新中使用子查询总是需要在 where 子句中使用子查询?

    这对我来说是一个常见的 SQL 查询 update table1 set col1 select col1 from table2 where table1 ID table2 ID where exists select 1 from t
  • 如何将 Malli 的一个模式包装在另一个模式中?

    这是我的有效负载 m validate readingDetails schema readingCode Code1 readingNumber twenty two round off readingCheck First readin
  • OpenCV中如何从n维数组中获取最大值

    我试图从 3 d Mat 中获取最大值 但 minmaxIdx 和 mixmaxloc 都未能做到这一点 int sz BIN BIN BIN Mat accumarray 3 sz CV 8U Scalar all 0 double te
  • 使用 C++ Catch 测试浮点 std::vector

    Catch C 单元测试框架是否有可能比较基于浮点类型的 std vector 我知道我可以比较两个容器和每个元素的大小 使用近似值 但这很混乱 积分类型向量的比较工作正常 现在 我必须使用这样的结构 REQUIRE computed si
  • 使用极坐标投影将颜色条添加到 pcolormesh

    我正在尝试使用极坐标投影将颜色条添加到 pcolormesh 图中 如果我不指定极坐标投影 该代码可以正常工作 指定极坐标投影后 会生成一个很小的图 并且颜色条不存在 我是在做一些愚蠢的事情 还是这是一个错误 我在 Fedora 20 上使
  • WooCommerce:将产品属性添加到产品中的现有属性中

    我正在努力为产品添加属性 我有一系列关键字想要添加到产品中 clean keywords array cake cup cakes term taxonomy ids wp set object terms get the ID clean
  • 如何在第三次出现某些内容时分割字符串? [复制]

    这个问题在这里已经有答案了 我知道 爆炸 会分割字符串并将其转换为每次出现的数组 但是我如何在第三次出现时拆分并保留第三次出 现后的所有内容 实施例1 split explode abc def ghi State 32 1 14 16 5