我试图在对这个字符串进行爆炸后删除最后一个数组: 例1
Adress1
Adress2
String1 : String2
示例2
Adress1
Adress2
Adress3
String1 : String2
我的想法是首先检查它们是否与字符串(adrori)中的匹配“:”然后应该完全删除最后一个数组“String1:String2”。不计算将计算多少阵列计数。
这是我的代码:
if (preg_match("/ : /", $adrori)) {
$arr2 = explode("\n", $adrori);
$adrori = array_pop($arr2);
$adrori = implode("\n", $adrori);
}
感谢
答案 0 :(得分:1)
array_pop
更改其参数并返回最后一个元素。所以你应该这样做。
if (preg_match("/ : /", $adrori)) {
$arr2 = explode("\n", $adrori);
array_pop($arr2);
$adrori = implode("\n", $arr2);
}
答案 1 :(得分:1)
在您的示例中,删除最后一个数组项后,您将重新崩溃它。
因此,您也可以使用region | score
--------------
a | 0.5
b | 1.2
c | 3.7
d | 1
e | 2.3
获得所需的结果,而不会爆炸/爆炸:
preg_replace
或:
$adrori = trim( preg_replace( '/.+ : .+$/', '', $adrori ) );
模式说明:
$adrori = preg_replace( '/\n.+ : .+$/', '', $adrori );
答案 2 :(得分:0)
试试这个:
$a = array('a1','a:2');
$b = array_filter($a,function($value){
if(strpos($value, ':') === false){
return $value;
}
});
print_r($b);
答案 3 :(得分:0)
来自@ksimka的例子有效!非常感谢你们!
我的错误是给aray_pop赋予变量。
错:
if (preg_match("/ : /", $adrori)) {
$arr2 = explode("\n", $adrori);
$adrori = array_pop($arr2);
$adrori = implode("\n", $adrori);
}
右:
if (preg_match("/ : /", $adrori)) {
$arr2 = explode("\n", $adrori);
array_pop($arr2);
$adrori = implode("\n", $adrori);
}
谢谢