我有一个字符串
$Community = "1,2,3,4,";
$ExplodeCommunity = explode(',',$Community);//Split
print_r($ExplodeCommunity);
哪个给出了
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => )
现在我要删除数组中的最后一个元素。我试过 array_pop
$RemovedLaste = array_pop($ExplodeCommunity);
print_r($RemovedLaste);
但是什么都没有印刷。如何在不使用array_pop
的情况下从数组中删除最后一个元素答案 0 :(得分:3)
array_pop
使用引用,因此它会影响原始数组...试试这个......
$x=array_pop($ExplodeCommunity);
print_r($ExplodeCommunity);
var_dump($x);
看看你得到了什么,顺便说一下你想打印空值?
答案 1 :(得分:2)
function remove_last($Community) {
$ExplodeCommunity = explode(',',$Community);
$remove_empty = array_values(array_filter($ExplodeCommunity));
$last_value_in_array = end($remove_empty);
$lengh = sizeof($remove_empty) -1 ;
unset($remove_empty[$lengh]);
return $remove_empty;
}
$Community = "1,2,3,4,";
print_r(remove_last($Community));
Output : Array ( [0] => 1 [1] => 2 [2] => 3 )
答案 2 :(得分:1)
发现问题
当您,
使用下面提供的代码时,您遇到的问题是字符串'1,2,3,4,'
中的最后一个逗号explode
:
$Community = "1,2,3,4,";
//^ The value after this is an empty string ''
$ExplodeCommunity = explode(',',$Community);
这导致$ExplodeCommunity
基本上是这个,其中最后一个条目是空字符串:
$ExplodeCommunity = [1,2,3,4,'']
这就是为什么你的Array
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => )
^ This is an empty string
函数array_pop
返回Array
中最后一个条目的值,在这种情况下是一个空字符串''
。
$RemovedLaste = array_pop($ExplodeCommunity);
print_r($RemovedLaste); // This prints an empty string ''
$ExplodeCommunity
的值为:
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4)
解决方案1:保持$Community
值相同:
如果您在$ExplodeCommunity
上执行array_pop
两次,则会获得4:
$Community = "1,2,3,4,";
//^ The value after this is an empty string ''
$ExplodeCommunity = explode(',',$Community);
$RemovedLaste = array_pop($ExplodeCommunity);
print_r($RemovedLaste); // This prints an empty string ''
$RemovedLaste = array_pop($ExplodeCommunity);
print_r($RemovedLaste); // This prints 4
$ExplodeCommunity
的值为:
Array ( [0] => 1 [1] => 2 [2] => 3)
解决方案2:使用rtrim
删除结束逗号,
:
您可以使用下面的rtrim
从$Community
字符串中删除结尾逗号:
$Community = rtrim("1,2,3,4,", ',');
$ExplodeCommunity = explode(',',$Community);
$RemovedLaste = array_pop($ExplodeCommunity);
print_r($RemovedLaste); // This prints 4
$ExplodeCommunity
的值为:
Array ( [0] => 1 [1] => 2 [2] => 3)
其他解决方案
您可以使用其他功能,例如unset
/ array_slice
,如其他答案中所述。
答案 3 :(得分:0)
您可以使用unset
unset($ExplodeCommunity[count($ExplodeCommunity) - 1] )
答案 4 :(得分:0)
试试这个......
if(empty($ExplodeCommunity[count($ExplodeCommunity)-1])) {
unset($ExplodeCommunity[count($ExplodeCommunity)-1]);
}
答案 5 :(得分:0)
尝试一下:
$arr = array('hello', 'world', '2');
$arr = unset(end($arr));
这将“取消设置”数组的'end'元素。
答案 6 :(得分:0)
您也可以尝试使用array_slice
array_slice:返回数组数组中的元素序列 由offset和length参数指定。
$RemovedLaste = array_slice(ExplodeCommunity, 0,-1);
print_r($RemovedLaste);
答案 7 :(得分:0)
自PHP 4起,您可以像这样使用explode函数删除最后一个元素:
$Community = "1,2,3,4,";
$ExplodeCommunity = explode(',', $Community,-1);
print_r($ExplodeCommunity);
这将给您:
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4)