gpt4 book ai didi

php - 如何使用 explode-implode 函数将字符串拆分为两个数组?

转载 作者:可可西里 更新时间:2023-11-01 13:42:28 25 4
gpt4 key购买 nike

假设我有以下字符串:

5+6-5*3/2+4

我需要将字符串分成两个数组:第一个数组包含整数,第二个数组包含字符串中的运算符。

我用过preg_split()函数,像这样

preg_split("/[^0-9]+/", $str)

并已成功完成任务,但我被告知要使用 explode()implode() 函数。我尝试使用它们,但现在我对如何使用它们获得所需的数组感到非常困惑。

最佳答案

这里的preg_match也可以帮你解决。您也可以使用 preg_split 来完成。 preg_match 是一个更好的解决方案,如果你有这样的字符串 5+6-(5*3)/2+4 那么 preg_split 结果还为您提供 ()。在这里,我们使用 array_map 来迭代和防止 0,这可能会被 array_filter 删除。

Try this code snippet here

解决方案 1: 使用 preg_match

正则表达式: (\d+)|([+-\/\*]) 这将匹配一个或多个数字或任何算术符号。

<?php
ini_set('display_errors', 1);
$str = "5+6-5*3/2+4+0";
preg_match_all("/(\d+)|([+-\/\*])/", $str,$matches);

$digits=array();
array_map(function($value) use(&$digits){
if($value!=="" && $value!==null && $value!==false)
{
$digits[]=$value;
}
}, $matches[1]);

$symbols=array();
array_map(function($value) use(&$symbols){
if($value!=="" && $value!==null && $value!==false)
{
$symbols[]=$value;
}
}, $matches[2]);

print_r($digits);
print_r($symbols);

Try this code snippet here

解决方案 2:使用 preg_split

这里我们在数字 (\d+) 和符号 [+-\/\*] 上拆分字符串

<?php

ini_set('display_errors', 1);
$str = "5+6-5*3/2+4+0";
$symbols=preg_split("/(\d+)/", $str);
$digits=preg_split("/([+-\/\*])/", $str);

$symbols= array_filter($symbols);
print_r($digits);
print_r($symbols);

关于php - 如何使用 explode-implode 函数将字符串拆分为两个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43608075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com