A. php的foreach使用&引用数组最后一个元素的 $value 引用在 foreach 循环之后仍会保留
你好!
这段代码中有2个foreach循环。产生这个结果的原因是引用变量没有进行释放造成的。
1.第一个foreach循环,使用了&$value的写法,我们理解为指针变量,当循环结束后,
它指向的是数组中最后一个元素,即$arr[5],此时它的值为12.
2.第二个foreach循环,相当于每次循环都给$value进行赋值,由于$value的引用没有释放,
那么就是间接的为arr[5]进行赋值,它每次的循环结果如下:
2,4,6,8,10,2
2,4,6,8,10,4
2,4,6,8,10,6
2,4,6,8,10,8
2,4,6,8,10,10
很好解决,就是在第一次foreach循环结束后,释放$value的引用,即unset($value);
希望对你有帮助!
B. php 数组 将指定元素移至末尾
$arr = array(0,3,5,0,0,7,1,9,0,8);
$count = count($arr);
$remove_arr = array();
for($i=0;$i<=$count;$i++){
if($arr[$i] === 0) {
array_push($arr, $arr[$i]);
array_push($remove_arr, $i);
}
}
foreach($arr as $k=> $v) {
if(in_array($k, $remove_arr)){
unset($arr[$k]);
}
}
echo '<pre>';
var_mp($arr);die;
C. php取数组末尾几个值 array
$arr=array_slice($arr,-1);//倒数1个
$arr=array_slice($arr,-2);//倒数2个
$arr=array_slice($arr,-3);//倒数3个
$arr=array_slice($arr,-4);//倒数4个
$arr=array_slice($arr,-5);//倒数5个
D. php里面用foreach遍历数组,如何知道遍历到了最后一个值
下面适用所有一维数组.
$i=0;
$arr_n=count($ar)-1;
foreach($ar as $f){
if($arr_n!=$i){
echo $f."<br>";
}
$i++;
}
类似于
$arr_n=count($ar);
for($i=0;$i<$arr_n-1;$i++){
echo $ar[$i]."<br>";
}
E. php 如何取出数组中第一个和最后一个元素的值
这个,先遍历获得数组的个数,然后再根据数组下标试试
F. PHP foreach 如何判断为数组最后一个最高效
$n = count($arr); //数组有几个原色
$i = 0;
foreach($arr as $key=>value){
$i++;
if($i == $n){
echo '这是最后一个';
如果你还有什么问题话,可以多去后盾人看一些相关的视频,会有帮助的
G. php中怎么删除数组的第一个元素和最后一个元素
使用 array_shift 删除数组的第一个元素,例如:
$user=array('apple','banana','orange');
$result=array_shift($user);
print_r($result);
print_r($user);
array_pop() 弹出并返回 array 数组的最后一个单元,并将数组 array 的长度减一。如果 array 为空(或者不是数组)将返回 NULL。
array_shift() 将 array 的第一个单元移出并作为结果返回,将 array 的长度减一并将所有其它单元向前移动一位。所有的数字键名将改为从零开始计数,文字键名将不变。如果 array 为空(或者不是数组),则返回 NULL。