Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数值多维数组(也称为二维数组或二维数组)-Bash_Php_Arrays_Bash_Multidimensional Array - Fatal编程技术网

Php 数值多维数组(也称为二维数组或二维数组)-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'

编辑1:关于,据我所知,所有的答案和示例都是关于关联数组的,而不是像下面这样的数值多维数组。它们只使用一个值命名索引,而不是使用多个值命名数字索引

编辑2:根据,可能无法在Bash中执行我想要的操作,因为我无法执行类似于:
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”值?