PHP多维数组键值

时间:2011-11-30 18:12:15

标签: php arrays multidimensional-array

我正在使用多维数组; 我使用arsort函数来获取最新添加的数组。一切正常

arsort($this->shoppingBag);
$this->productToShow = key($this->shoppingBag);

当我想使用这个数组时,我会这样做:

$prodName = key($this->shoppingBag[$this->productToShow]);

这给了我正确的产品,我需要正确的名称。当我做的时候

$count = $this->shoppingBag[$this->productToShow[$prodName]];

它给我一个“未定义的索引”错误。

当我用键作为字符串回显数组时,我从该数组中得到正确的值..

为什么会这样?如何使用该密钥获取值?

编辑:

array(4) 
{
    [38] => array(1) 
    {
        ["SAMSUNG LE32D450"] => int(3)
    }
    [32] => array(1) 
    {
        ["Inspiron 15R"] => int(1)
    }
    [29] => array(1) 
    {
        ["XPS 15"] => int(25)
    }
    [37] => array(1) 
    {
        ["Logitech M185 Black"] => int(10)
    }
}

3 个答案:

答案 0 :(得分:1)

这很简单,因为$this->productToShow只是一个关键变量而不是数组。因此,对该变量的索引的调用是未定义的。那么你要找的答案不是$count = $this->shoppingBag[$this->productToShow][$prodName];

答案 1 :(得分:0)

尝试:

$count = $this->shoppingBag[$this->productToShow];

答案 2 :(得分:0)

$this->productToShow不是数组。因此,$prodName中的特定项目的关键点为$this->shoppingBag

我假设您希望$ count返回最后一个键因为如果我们将[$prodName]错误地应用到$this->productToShow键,$ count将返回购物中最后一个键的值袋。