PHP从数组中删除最后一个单词


PHP Remove last word from an array

我在数组中使用了以下格式的mysql查询,我必须删除最后一个和

Array ( [0] => date = '2012-02-22' and time ='08:49' and  [1] => date = '2012-02-22' and time ='08:49' and )

在放入函数array_values()后,我得到了这个数组作为output;

我尝试了rtim和trim。

提前感谢

尝试以下操作,

array_push(yourarray, rtrim(array_pop(yourarray), ' and'));

它将弹出最后一个元素,去掉末尾的"and",然后将修改后的元素重新添加到数组中。

例如,

$yourarray = array("date = '2012-02-22' and time ='08:49' and",  
             "date = '2012-02-22' and time ='08:49' and ");
var_dump($yourarray);
array_push($yourarray, rtrim(array_pop($yourarray), ' and'));
var_dump($yourarray);

输出以下

array(2) {
  [0]=>
  string(41) "date = '2012-02-22' and time ='08:49' and"
  [1]=>
  string(42) "date = '2012-02-22' and time ='08:49' and "
}
array(2) {
  [0]=>
  string(41) "date = '2012-02-22' and time ='08:49' and"
  [1]=>
  string(37) "date = '2012-02-22' and time ='08:49'"
}

因此,最后一个元素中的最后一个"and"已被删除。

$arr = array_map("remove_last_and", $arr);
function remove_last_and($el) {
    return preg_replace('/'s*and's*$/i', '', $el);
}

示例:

$arr = array("date = '2012-02-22' and time ='08:49' and",  
             "date = '2012-02-22' and time ='08:49' and ");
$arr = array_map("remove_last_and", $arr);
function remove_last_and($el) {
    return preg_replace('/'s*and's*$/i', '', $el);
}
var_dump($arr);

输出:

array(2) {
  [0]=>
  string(37) "date = '2012-02-22' and time ='08:49'"
  [1]=>
  string(37) "date = '2012-02-22' and time ='08:49'"
}

ps:我没有写内联或匿名函数,因为我不知道你使用的是什么版本的PHP。但是,作为示例,您可以从php5.3开始编写

$arr = array_map(function($el) {
            return preg_replace('/'s*and's*$/i', '', $el);
       }, $arr);

ps:我不认为使用trimrtrim是好的,因为如果查询略有不同,并且字符串末尾有"and"字母,它可以删除查询的部分。

$a = array ( 0 => "date = '2012-02-22' and time ='08:49' **and**",  1 => "date = '2012-02-22' and time ='08:49' **and**");
function func($v){
    return rtrim($v,' **and**');
}
$b = array_map('func',$a);

使用带有可选参数"and"的trim()

foreach($myarray as $element)
{
  trim($element, 'and')
}

编辑:只删除最后一个元素中的最后一个"answers"

 trim($myarray[count($myarray) -1] , 'and')