按索引定位多维关联数组

时间:2011-06-24 16:53:35

标签: php arrays multidimensional-array

如何通过索引来定位多维关联数组?我需要能够做到这一点......

$x=2;

$assoc_array = array(
"red" => array(1,2,3,4,5),
"green" => array(1,2,3,4,5),
"blue" => array(1,2,3,4,5)
);

array_push($assoc_array[$x],6);

3 个答案:

答案 0 :(得分:1)

你实际上可以这样做。作为替代方案,您可以使用$assoc_array[$x][] = 6

编辑:以上是您提出的问题的答案。下面的代码是我认为你需要的,但没有明确说明:

$x = 2;
$keys = array_keys($assoc_array);
var_dump($assoc_array[$keys[$x]]);

工作键盘示例:http://codepad.org/QXfHmKH8

答案 1 :(得分:1)

我证明它有效:http://codepad.org/G81fsTzl

红色为0,绿色为1,蓝色为2或$ x = 2。

如果我的回答是正确的,请务必选中此帖左侧的复选框,以便获得积分。积分是促使我继续回答问题的动力。谢谢你的时间。

$x=2;

$assoc_array = array(
    "red" => array(1,2,3,4,5),
    "green" => array(1,2,3,4,5),
    "blue" => array(1,2,3,4,5)
);

$c = 0;
foreach ($assoc_array as $key => $value)
{
    if ($c == $x)
    {
        array_push($value, 6);
        $assoc_array[$key] = $value;
    }

    $c++;
}

答案 2 :(得分:0)

您必须通过键引用它们,在这种情况下,键是您给出的颜色值。要向第一个项目(红色)添加新元素,您可以使用:

$assoc_array["red"][] = 6;

使用$ assoc_array [$ x] [] = 6;将创建一个标识为$ x的新数组键,除非$ x为红色,绿色或蓝色。

如果您只想引用现有的数组值,则上述方法可以正常工作,但会大量复杂化。

将字符串值作为数组键给出的部分想法是允许通过相关的字符串而不是无意义的数字来轻松引用数组值。