我在数组中使用了以下格式的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:我不认为使用trim
或rtrim
是好的,因为如果查询略有不同,并且字符串末尾有"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')