我有一个字符串看起来像这样:
土绿色,随意的东西,咖啡的东西,另一个标签
我正在尝试删除“ - ”后面的所有内容,但是当检测到“,”或“”时,请停止并重做该过程,以便传出的字符串变为
地球随机咖啡另一个
substr($func, 0, strrpos($func, '-'));
首先删除所有内容' - '
答案 0 :(得分:3)
最简单的方法是使用explode(通过拆分字符将字符串转换为数组),所以用逗号分隔
然后对于该数组中的每个项目,在连字符上拆分并获取第一个元素。
然后你可以将物品与内爆(爆炸的对面)粘合在一起
这假设没有无关的逗号或其他并发症
$str = 'earth-green, random-stuff, coffee-stuff, another-tag';
$arr = explode(',', $str);
$out_arr = array(); // will put output values here
foreach ($arr as $elem) {
$elem = trim($elem); // get rid of white space)
$arr2 = explode('-', $elem);
$out_arr[] = $arr2[0]; // get first element of this split, add to output array
}
echo implode(' ', $out_arr);
答案 1 :(得分:1)
稍微不同的方法,使用带有匿名函数的array_walk来迭代而不是foreach。
<?php
$str = 'earth-green, random-stuff, coffee-stuff, another-tag';
$arr = explode(',', $str);
array_walk($arr, function( &$value, $index ) {
$sub = explode('-', trim($value));
$value = $sub[0];
});
var_dump($arr);