变量作为索引键?

时间:2009-11-17 10:33:08

标签: php

好的,所以数组是$ nv = array();

$ nv [$ kk] = $ value;

索引键是$ kk变量。 如果你有$ kk,那么你可以通过索引键将它们作为变量$ kk访问 $ KK?

但如果我这样做会怎么样:

$nv[$kk][$jj] = $value;

我现在可以访问分配给$ value的变量$ kk和$ jj,即使它们是 索引键,同时声音强大而可怕。

问题#1:我是一个菜鸟,只是想知道这是否是对上述代码的正确解释;此外,这种结构有什么好处?

问题2:除非我错了,否则你能用这个看起来非常强大的结构做什么?

显然只是复制整个结构“$ nv [$ kk] [$ jj] = $ value;”进入谷歌并没有产生显着的结果,大多数关于PHP数组的例子似乎都没有真正详细解释这一点。

  $nv = array();
  foreach($vars as $key => $value)
  {
    $kk = "#".strtoupper($key)."#";
    $nv[$kk] = $value;
  }
  unset($vars);
  $tdata = strtr($nv,$tdata);
  return true;

或者来自php.net

一个多维数组,好吧,所以第一个索引可以是行,第二个索引可以是列 在访问“a”方面?

$a = array();
$a[0][0] = "a";
$a[0][1] = "b";
$a[1][0] = "y";
$a[1][1] = "z";

foreach ($a as $v1) {
    foreach ($v1 as $v2) {
        echo "$v2\n";
    }
}

需要一些澄清,我正在努力为我对php概念的理解打下坚实的基础,提前谢谢你,请不要为了菜鸟而烦恼。

3 个答案:

答案 0 :(得分:1)

表达式$nv[$kk][$jj]是维度访问。尝试在php中运行它。

$k="k";
$j="j";
$a[$k][$j]=10;
print_r($a);
echo "\n";

这将打印:

Array
(
    [k] => Array
        (
            [j] => 10
        )

)

所以k是第一维,j是另一维。

您可以使用print_rvar_dump打印数组中的所有元素。

希望这有帮助。

答案 1 :(得分:1)

将“多维数组”视为Fortran类型矩阵将导致您误入歧途!

$hash_of_hashes[$a][$b] = "bonjour";

真的是简写: -

$tempar = array();
$tempar[$b] = "bonjour";
$hash_of_hashes[$a] = $tempar;

php有一个“数组”结构,根据用途可以是数组或散列。数组是单维的数组条目可以是任何有效的PHP结构,缩放器,另一个数组或类。你可以在一个阵列中混合所有这些。

因此,而不是“多维数组”认为“带有另一个哈希条目的哈希”

答案 2 :(得分:0)

您正在研究的是多维数组。

您通常会使用这些将数据组织到组和子组中。我个人倾向于避免远远超过几个级别,以避免不必要的复杂性。

如果你要var_export你的数组var_export($ nv),你应该能够在执行代码时看到数组的结构。

为了扩展您的知识,我强烈建议您仔细查看arrays上的PHP文档,以避免任何混淆/误解。

相关问题