Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在foreach中传递变量。。获取数组的所有索引_Php_Loops_Foreach - Fatal编程技术网

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]);
        }
    
    ?>