phpifforeach
⑴ php foreach嵌套if else問題
$exist=false;
foreach($cartinfo as $k=>$value){
if($value['pid']==$userId){
$cartinfo[$k]['quantity']+=1;
$exist=true;
$cart_ser=serialize($cartinfo);
setcookie('Cart',$cart_ser,time()+36000);
header("location:cart.php");
break;
}
}
if(!$exist){
$cartinfo[]=$row;
$cart_ser=serialize($cartinfo);
setcookie('Cart',$cart_ser,time()+36000);
header("location:cart.php");}
問題1: 循環嵌套外層除了增加重復執行,沒有作用,2內外循環變數互相干擾了。
⑵ 怎麼控制php中的foreach循環次數
如果你想控制foreach循環次數,只需要在循環當中判斷一下即可.
如:
foreach($a as $k=>$v){
if($k==6) break; //指定循環6次
}
⑶ php的foreach和if中的變數是全局的還是局部的呢
實測:
在PHP中
if循環體中定義的變數為全局變數,在循環體外也可以訪問
foreach循環體中定義的變數為局部變數
以下是實測代碼:
<?php
if(true){
$str=1;
}
echo"str1:".$str.PHP_EOL;
$arr=[];
$arr[]=1;
$arr[]=2;
foreach($arras$v){
$str2=1;
}
echo"str2:".$str2;
⑷ php foreach 數組賦值
<?php
//代碼本地已運行過
$arr=array(1,2,2,4);
$uniq_arr
=
array_unique($arr);//第一步先去重,取得最外部需要循環的數組
$i
=
0;
foreach($uniq_arr
as
$key=>$val){//循環去重後的數組
foreach($arr
as
$k=>$v){//循環原生數組
if($key
!=
$k){//判斷兩次的key是否相等,array_unique,去重後的數組key是不變的
if($val
==
$v){
if(is_array($new_arr[$i])){//判斷是否已經是個數組,是就直接追加
array_push($new_arr[$i],$v);
}else{//不是就拼接後再追加
$k_arr
=
array($new_arr[$i]);
array_push($k_arr,$v);
$new_arr[$i]
=
$k_arr;
}
}
}else{//如果key相等直接賦值給新數組
$new_arr[$i]
=
$val;
}
}
$i++;
}
print_r($new_arr);
?>
⑸ php foreach 循環次數如何設置
//如限制5條記錄;
//沒有數字索引時
$i=1;
foreach($listas$val){
if($i>=5)break;
//do
$i++;
}
//有默認索引時
foreach($listas$key=>$val){
if($key>=5)break;
//do
}
⑹ PHP foreach 如何判斷為數組最後一個最高效
$n = count($arr); //數組有幾個原色
$i = 0;
foreach($arr as $key=>value){
$i++;
if($i == $n){
echo '這是最後一個';
如果你還有什麼問題話,可以多去後盾人看一些相關的視頻,會有幫助的