Php 数值多维数组(也称为二维数组或二维数组)-Bash
编辑1:关于,据我所知,所有的答案和示例都是关于关联数组的,而不是像下面这样的数值多维数组。它们只使用一个值命名索引,而不是使用多个值命名数字索引 编辑2:根据,可能无法在Bash中执行我想要的操作,因为我无法执行类似于:Php 数值多维数组(也称为二维数组或二维数组)-Bash,php,arrays,bash,multidimensional-array,Php,Arrays,Bash,Multidimensional Array,编辑1:关于,据我所知,所有的答案和示例都是关于关联数组的,而不是像下面这样的数值多维数组。它们只使用一个值命名索引,而不是使用多个值命名数字索引 编辑2:根据,可能无法在Bash中执行我想要的操作,因为我无法执行类似于:echo$A[1][1]的操作来获取数组中第二个索引的第二个值,就像我们在PHP和其他程序中通常可以做的那样 编辑3:根据,我几乎可以肯定这不能在Bash中以“人类可读”的方式完成 在PHP中,数字多维数组是如何创建的: <?php $b[]=array("Apple'
echo$A[1][1]
的操作来获取数组中第二个索引的第二个值,就像我们在PHP和其他程序中通常可以做的那样
编辑3:根据,我几乎可以肯定这不能在Bash中以“人类可读”的方式完成
在PHP中,数字多维数组是如何创建的:
<?php
$b[]=array("Apple's Mac","UNIX from Ken, Dennis, Douglas and Peter");
$b[]=array("Sun Microsystems' Solaris","Linus Torvalds' Linux");
//or:
$b=array(
array("Apple's Mac","UNIX from Ken, Dennis, Douglas and Peter"),
array("Sun Microsystems' Solaris","Linus Torvalds' Linux")
);
print_r($b);
/*Array
(
[0] => Array
(
[0] => Apple's Mac
[1] => UNIX from Ken, Dennis, Douglas and Peter
)
[1] => Array
(
[0] => Sun Microsystems' Solaris
[1] => Linus Torvalds' Linux
)
)*/
//To access the first numeric array:
print_r($b[0]);
?>
我能找到的唯一“黑客”方式就是得到我想要的:
A=(
"Apple's Mac|UNIX from Ken, Dennis, Douglas and Peter"
"Sun Microsystems' Solaris|Linus Torvalds' Linux"
)
#Printing the second index of the array
echo ${A[1]}
#It prints:
Sun Microsystems' Solaris|Linus Torvalds' Linux
#Accessing the second "value" of the second index
echo ${A[1]} | cut -d'|' -f2
#It prints:
Linus Torvalds' Linux
但必须有一种更简单、更正确、更恰当的方法来做到这一点
谢谢您的帮助。不是最好的,但这里有另一个解决方案: 您可以像下面这样使用declare
#!/bin/bash
A1=("Apple's Mac" "UNIX from Ken, Dennis, Douglas and Peter")
A2=("Sun Microsystems' Solaris" "Linus Torvalds' Linux")
declare -p A1 A2 > multi-array.save
如果需要重新加载不同的阵列:
source ./multi-array.save
当然,这不是多维的,但为了内存起见,它得到了类似的结果。不是最好的,但这里有另一个解决方案: 您可以像下面这样使用declare
#!/bin/bash
A1=("Apple's Mac" "UNIX from Ken, Dennis, Douglas and Peter")
A2=("Sun Microsystems' Solaris" "Linus Torvalds' Linux")
declare -p A1 A2 > multi-array.save
如果需要重新加载不同的阵列:
source ./multi-array.save
当然,这不是多维的,但为了内存起见,它得到了类似的东西。是的,
A
将成为一个包含X
和Y
内容的多元素数组,其第二个元素是您打印的元素是的,但这与我想要得到的不同。bash数组的第二个索引必须是一个数组,与我从PHP代码中获得的方法相同。可能与我上面所说的相同:“据我所知,所有的答案和示例都是关于关联数组的,而不是像下面的case bellow那样的数值多维数组。它们只使用一个值命名索引,而不是使用多个值命名数字索引。“是的,A
将成为一个包含X
和Y
内容的多元素数组,其第二个元素是您打印的元素是,但这与我想要的不同。bash数组的第二个索引必须是一个数组,与我从PHP代码中获得的方法相同。可能与我上面所说的相同:“据我所知,所有的答案和示例都是关于关联数组的,而不是像下面的case bellow那样的数值多维数组。他们只使用一个值命名索引,而不是使用多个值命名数字索引。“请问,我如何通过您的解决方案访问“Linus Torvalds’Linux”值?请问,我如何通过您的解决方案访问“Linus Torvalds’Linux”值?