【问题标题】:How to automatically know the name of a field of an array in php?如何在php中自动知道数组的字段名称?
【发布时间】:2012-01-19 13:01:32
【问题描述】:

我只是有一个小问题,我找不到任何答案,因为我不知道如何在 Google 上准确地表述它。

所以我从查询中返回了这个数组:

Array
(
    [0] => Array
        (
            [aad3177ec0cbced7a15fae003bdd0ff3] => Array
                (
                    [rowid] => aad3177ec0cbced7a15fae003bdd0ff3
                    [id] => 21
                    [qty] => 1
                    [price] => 176
                    [name] => KRUPS YY1305 
                    [image] => utilities/images/products/p2070396dt.jpg
                    [description] => Menu simplifié pour une convivialité optimale.   
                    [subtotal] => 176
                )
        )
)

我想获取所有信息 rowid、id、qty ... 通过 foreach 循环将其存储在另一个变量中,而不知道第二个数组的名称:'aad3177ec0cbced7a15fae003bdd0ff3'。我只想在用户注销时从存储在数据库中的购物车中检索文章。

那我该怎么说:

echo $myArray['0'][theNumberGoesHereAutomatically]['price'];

理想情况下,我的代码应该是这样的:

foreach ($data2 as $cart){
            $data = array(
                   'rowid'      => $cart_unserialized[$token]['aad3177ec0cbced7a15fae003bdd0ff3']['rowid'],
                   'id'         => $cart_unserialized[$token]['aad3177ec0cbced7a15fae003bdd0ff3']['id'],
                   'qty'        => $cart_unserialized[$token]['aad3177ec0cbced7a15fae003bdd0ff3']['qty'],
                   'price'      => $cart_unserialized[$token]['aad3177ec0cbced7a15fae003bdd0ff3']['price'],
                   'name'       => $cart_unserialized[$token]['aad3177ec0cbced7a15fae003bdd0ff3']['name'],
                   'image'      => $cart_unserialized[$token]['aad3177ec0cbced7a15fae003bdd0ff3']['image'],
                   'description'=> $cart_unserialized[$token]['aad3177ec0cbced7a15fae003bdd0ff3']['description'],
                );
            $this->cart->insert($data2);
            $token++;
        };

不知道 aad3177ec0cbced7a15fae003bdd0ff3。

有什么想法吗?谢谢:)

【问题讨论】:

  • 您是否尝试使用array_keys() 获取名称?
  • 是的,就是这样!非常感谢 :) (嗯,是的,显然这很容易,但最难的是知道这个函数存在;p)

标签: php arrays codeigniter foreach cart


【解决方案1】:

您可以通过以下方式轻松做到这一点:

foreach ($data2 as $varname => $cart){

$varname 将包含aad3177ec0cbced7a15fae003bdd0ff3

【讨论】:

    【解决方案2】:
    foreach($array as $key => $value)
    {
      echo $value['price'];
    }
    

    【讨论】:

      【解决方案3】:

      您可以通过key()函数获取密钥

      【讨论】:

        【解决方案4】:

        使用current函数:

        foreach ($data2 as $token=>$cartUnserialized){
            $data = current($cartUnserialized);
            // .. proccess your data ..
        };
        

        【讨论】:

        • 噢噢耶,那是最好的!非常感谢
        猜你喜欢
        • 2012-05-22
        • 2011-09-06
        • 2016-02-18
        • 2011-04-12
        • 2021-12-29
        • 2021-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多