伪造一个多维数组[重复]

Posted

技术标签:

【中文标题】伪造一个多维数组[重复]【英文标题】:Fake a multi-dimensional array [duplicate] 【发布时间】:2013-09-18 01:31:48 【问题描述】:

由于 bash 不支持多维数组,我该如何伪造它以便可以像这样访问它:

#declare
array["foo"] = "bar"

#print
echo array["foo"] //how to display declared 'bar' here?

所以问题是:我需要做什么,在访问array["foo"] 时打印出bar

【问题讨论】:

tldp.org/LDP/abs/html/arrays.html#TWODIM 【参考方案1】:

你只需要使用associative arrays:

declare -A array=()

#declare
array["foo"]="bar"

#print
echo "$array["foo"]"

你可以用它来伪造多维数组

i=1
j=2
array[$i,$j]=1234
echo "$array[$i,$j]"

【讨论】:

它只适用于一个元素:declare -a array=(["moo"]="cow" ["john"]="doe") : echo "$array["moo"]" //returns doe[!] which is wrong, echo "$array["john"]" //returns doe aswell which is fine 当我只做一个像echo $array["moo"]" 这样的回显时,它工作正常,但是当我想打印多个数组元素时会出现问题。 @Lucas 确保将您的数组声明为与 declare -A 而不是 -a 关联。 这很奇怪 - 我使用了 -a 参数,因为当我这样做时 -A 这就是我得到的:declare: -A: invalid option declare: usage: declare [-afFirtx] [-p] [name[=value] ...] 我正在使用以下 bash:#!/usr/local/bin/bash 我认为declare -A 在 4.0 及更高版本的 bash 中。我正在运行3.2.48

以上是关于伪造一个多维数组[重复]的主要内容,如果未能解决你的问题,请参考以下文章

从字符串创建多维数组[重复]

在php中将一维数组转换为多维数组[重复]

使用 Javascript 检查多维数组的长度 [重复]

使用foreach打印多维数组[重复]

C#多维数组转换成数组[重复]

javascript创建多维数组语法[重复]