Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除php中的always last数组_Php - Fatal编程技术网

删除php中的always last数组

删除php中的always last数组,php,Php,在对该字符串进行爆炸后,我正在尝试移除最后一个数组: 例1 Adress1 Adress2 String1 : String2 例2 Adress1 Adress2 Adress3 String1 : String2 我的想法是首先检查它们是否匹配:“in string(adrori),然后应完全删除最后一个数组“String1:String2”。不知道要计算多少数组计数 这是我的密码: if (preg_match("/ : /", $adrori)) { $arr2 = ex

在对该字符串进行爆炸后,我正在尝试移除最后一个数组: 例1

Adress1
Adress2
String1 : String2 
例2

Adress1
Adress2
Adress3
String1 : String2 
我的想法是首先检查它们是否匹配:“in string(adrori),然后应完全删除最后一个数组“String1:String2”。不知道要计算多少数组计数

这是我的密码:

if (preg_match("/ : /", $adrori)) {
    $arr2 = explode("\n", $adrori);
    $adrori = array_pop($arr2);
    $adrori = implode("\n", $adrori);
}   

谢谢

array\u pop
更改其参数并返回最后一个元素。所以你应该这样做

if (preg_match("/ : /", $adrori)) {
    $arr2 = explode("\n", $adrori);
    array_pop($arr2);
    $adrori = implode("\n", $arr2);
}  

array\u pop
更改其参数并返回最后一个元素。所以你应该这样做

if (preg_match("/ : /", $adrori)) {
    $arr2 = explode("\n", $adrori);
    array_pop($arr2);
    $adrori = implode("\n", $arr2);
}  
试试这个:

$a = array('a1','a:2');
$b = array_filter($a,function($value){
if(strpos($value, ':') === false){
  return $value;
 }
});
print_r($b);
试试这个:

$a = array('a1','a:2');
$b = array_filter($a,function($value){
if(strpos($value, ':') === false){
  return $value;
 }
});
print_r($b);

在您的示例中,删除最后一个数组项后,将其重新内爆

因此,您也可以使用
preg\u replace
获得所需的结果,而无需爆炸/内爆:

$adrori = trim( preg_replace( '/.+ : .+$/', '', $adrori ) );
或:

模式说明:

\n  newline
.+  one or more characters
 :  space-colon-space
.+  one or more characters
$   end of string

在您的示例中,删除最后一个数组项后,将其重新内爆

因此,您也可以使用
preg\u replace
获得所需的结果,而无需爆炸/内爆:

$adrori = trim( preg_replace( '/.+ : .+$/', '', $adrori ) );
或:

模式说明:

\n  newline
.+  one or more characters
 :  space-colon-space
.+  one or more characters
$   end of string

@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);
    }   

谢谢你,

来自@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);
    }   

谢谢你

举个例子,很难理解。我不懂这些例子。你能为
var\u导出($adrori)发布输出吗对应于示例?您知道吗,如果字符串第一行包含“String1:String2”,最后一行包含“Adress3”,则“Adress3”将被删除?所有地址都以string:string结尾。有时是两排,有时是两排以上。但总是出现在以下字符串的末尾:ExampleString:ExampleString。因此,我总是试图删除字符串末尾带有“:”的最后一行。举个例子,很难理解。我不理解这些例子。你能为
var\u导出($adrori)发布输出吗对应于示例?您知道吗,如果字符串第一行包含“String1:String2”,最后一行包含“Adress3”,则“Adress3”将被删除?所有地址都以string:string结尾。有时是两排,有时是两排以上。但总是出现在以下字符串的末尾:ExampleString:ExampleString。所以我总是试图删除字符串末尾带有“:”的最后一行。