Php 如何在foreach中传递变量。。获取数组的所有索引
不确定这是否可行,但接下来。。。我需要获取Php 如何在foreach中传递变量。。获取数组的所有索引,php,loops,foreach,Php,Loops,Foreach,不确定这是否可行,但接下来。。。我需要获取对象中包含的数组的所有索引 弗雷奇 此代码包含在foreach中,var$cart包含一个数组的对象,该数组具有多个索引。如果我用0替换$x,循环将显示购物车数组中的第一个索引。但是,一些cart包含超过1个索引 count($keys)正确地回显了cart数组中的索引数。例如,我有三辆手推车 cart1具有1索引 cart2具有2索引 购物车3有4个索引 如果我进行回声计数($keys)我将返回1 2 4 如何将这些值(按顺序)分别传递给每个循环的$x
对象中包含的数组的所有索引
弗雷奇
此代码包含在foreach
中,var$cart
包含一个数组的对象,该数组具有多个索引。如果我用0
替换$x
,循环将显示购物车
数组中的第一个索引。但是,一些cart
包含超过1个索引
count($keys)
正确地回显了cart
数组中的索引数。例如,我有三辆手推车
cart
1具有1索引
cart
2具有2索引
购物车
3有4个索引
如果我进行回声计数($keys)
我将返回1 2 4
如何将这些值(按顺序)分别传递给每个循环的$x
var
注意购物车可能有多个索引值
预期产出:
每个cart
包含一个包含多个产品的数组。foreach必须迭代并显示cart
中数组中的每个产品,基于上面显示的var\u转储,cart
数组的预期输出应如下表所示:
<tr>0</tr> /*cart 1 has 1 index in the array*/
<tr>01</tr> /*cart 2 has 2 index in the array*/
<tr>0123</tr> /*cart 3 has 4 index in the array*/
0/*购物车1在数组中有1个索引*/
01/*购物车2在数组中有2个索引*/
0123/*购物车3在数组中有4个索引*/
如果我理解你的问题——我不确定我是否理解——你可以在循环中使用一个简单的foreach
循环,但你不显示。(或者至少在我写这个答案的时候它不在问题中——也许编辑你的问题来展示它,嗯?)
此内部foreach
循环将循环通过$keys
的值,如下所示:
foreach ($keys as $this_key) {
// whatever you want to do with the values of $keys here
// each value will be available as $this_key
}
数组索引从0开始,因此您应该尝试:
$x = count($keys) -1
$index = $keys[$x]
所有索引都保存在$keys中,您可以循环使用它来获取相应的元素,如$cart[$keys[0]]、$cart[$keys[1]]、…
这将为您提供$index
中数组的最后一个数组键
或者,我建议您使用以下方法循环遍历数组$cart的所有键:
foreach($cart as $key=>$value){
$cart[$key]; $value //Do whatever you want with the cart with the index $key or its value $value.
}
你可以试试下面的方法
每个订单可以有多个购物车,每个购物车可以有多个项目。要在每个购物车中显示的项目数量
<?php
$cart = unserialize($val->cart);
$keys = array_keys($cart); // this will give you # of carts into one order
//if now you want to count # of items into each cart then
foreach($keys as $val){
echo count($cart[$val]);
}
?>
请粘贴$cart的数组结构和预期结果数组结构我将编辑问题--请稍候--thanks@fabio-你的问题很时髦。请粘贴所有代码,并解释在foreach
循环中要执行的操作。另外,发布$cart
和$keys
@fabio的var_dump
,您的问题和预期输出仍然不清楚。你能粘贴准确的输出吗?@GBD我做了另一次编辑,希望澄清任何混淆。谢谢你的帮助!:)嘿,是的——没那么简单,请看我的代码——问题修改了。感谢您对循环中的任何$cart
变量执行var转储?是否要将所有购物车项目合并到单个数组中?如果执行$cart=$cart[$index],会发生什么;foreach($cart as$value){echo$value['fieldname'];}或者现在粘贴整个代码,因为现在用一个小片段来解决这个问题很困难
foreach($cart as $key=>$value){
$cart[$key]; $value //Do whatever you want with the cart with the index $key or its value $value.
}
<?php
$cart = unserialize($val->cart);
$keys = array_keys($cart); // this will give you # of carts into one order
//if now you want to count # of items into each cart then
foreach($keys as $val){
echo count($cart[$val]);
}
?>