在php中删除总是最后一个数组

时间:2016-03-07 11:20:45

标签: php

我试图在对这个字符串进行爆炸后删除最后一个数组: 例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);
}   

感谢

4 个答案:

答案 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);
    }   

谢谢