我有一个存储在$ _SESSION中的数组:
var_dump($_SESSION['session_article']);
//result:
array(2) {
[0]=> array(2) {
["id"]=> string(1) "3"
["amount"]=> int(2)
}
[1]=> array(2) {
["id"]=> string(2) "13"
["amount"]=> int(1)
}
}
如果我这样做:
for($artKey = 0;$artKey < count($_SESSION['session_article']);$artKey++){
$cartArt = $_SESSION['session_article'][$artKey];
//stuff that doesn't affect key or value
}
一切都很好......但如果我这样做:
foreach($_SESSION['session_article'] as $artKey => $cartArt){
//stuff that doesn't affect key or value
}
页面不会停止加载(无限加载,就像foreach永远不会终止一样)
答案 0 :(得分:0)
我想知道计算机不是一台愚蠢的机器,所以每当你没有得到正确的结果,那么它不是计算机问题,而是你编码的方式。
所以让我们先看看你的代码var_dump($_SESSION['session_article'])
你有一个数组,其中两个元素都是一个关联数组。现在观察这是一个数组数组,因此您在方案2中的代码是错误的。
如果它只是一个数组说$myArray = ['Simon', 'Peter', 'You']
那么这个犯规工作正常(注意我在这里使用短数组语法,如果你愿意,可以使用array())。但问题是你有多维数组,所以你应该
foreach($_SESSION['session_article'], list($a,))
{
//stuffs here
}
或更好地将$ _SESSION [&#39; session_article&#39;]作为一个关联数组,如此
$myArray = $_SESSION['session_article']
$field = count($myArray, COUNT_RECURSIVE - (int)2)
for ($record = 0; $record < $myArray.length; $record++) {
//record number
for ($field = 0; $field < $field ; $field++) {
//combine record and field here
}
}
希望我可以伸出援助之手? 请结账 http://php.net/manual/en/function.count.php http://php.net/manual/en/control-structures.foreach.php
他们真的有一个好的医生,只是慢慢来。