如何将关联数组的键范围设置为一个值

杰克·勒罗伊(Jake Leroy)

我想知道如何将关联数组中的键范围设置为特定值。

declare -A array
array=(
['key1']="value1"
['key2']="value2"
['key3']="value3"
)

我可以使用以下方法回显一系列数组:

echo ${array[@]:0:2}

它输出:

value2 value3

但是,如何一次更改多个值以保持代码干燥呢?使用类似或不同的方法?例如一个理论例子:

${array[@]:0:2}="newvalue"

将key2和key3更改为

['key2']="newvalue"
['key3']="newvalue"
埃德·莫顿

${array[@]:0:2} 并不意味着对关联数组特别有用-它以bash认为合适的某种顺序获取值列表(先入先出,后进先出,哈希顺序,按索引字母顺序或按值字母顺序? ?)并打印其中的2个,但关联数组的全部要点是,即使您确实知道bash将它们存储在其中的顺序,这些值也只与命名索引相关,而与它们的存储顺序无关内部或其他任何方式,因此打印或更新关联数组的N个值中的2个(除其索引名称以外)没有意义。

$ cat tst.sh
#!/bin/env bash

declare -A array
array=(
    ['key1']='value1'
    ['key2']='value2'
    ['key3']='value3'
)

for key in key1 key2; do
    array["$key"]='newvalue'
done

declare -p array

$ ./tst.sh
declare -A array=([key3]="value3" [key2]="newvalue" [key1]="newvalue" )

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Javascript:如何将变量的值设置为关联数组中的键?

如何将两个或多个关联数组与键作为前一个数组元素的值组合,以创建多级数组?

创建一个键匹配值的关联数组

PHP 如何将关联数组(不是它的值)推送到另一个数组?

给定一个关联数组,其中值是平面数组,如何搜索值并返回键?

如何将2个数组合并为一个关联数组

如何将关联数组转换为一个数组

如何将关联数组附加到另一个数组的末尾?

如何将具有相同键的两个对象(关联数组)合并到一个对象中

将一个关联数组转换为一个关联数组,该关联数组具有一个键,该键中的另一个关联数组作为键在php中的值

如何通过继续增加键将关联添加到另一个关联数组中?

如何将关联数组项递归复制到另一个单个数组项?

如何在多维关联数组中将值列表设置为键?

如何将两个列表与键值合并到一个关联数组中

如何将一个数组中的值作为键关联到另一个数组?

如何将关联数组与不同的键组合?

如何在一个数组中获取多维关联数组键?

从关联数组中的每个键中获取一个值

如何将array_push与关联数组和索引键一起使用?

一个衬垫,用于在关联数组中动态创建键,或者,如果存在,将值推送到现有键的数组

有没有办法在不丢失 PHP 中的键的情况下将关联数组的数组分解为一个数组?

如何用用户定义的键声明一个关联数组?

创建一个具有多个值的关联数组到php中的一个键

将关联数组推为一个关联数组

将一个数组值设置为新数组中的键

如何在某个值上的基本关联数组中选择一个数组

将每个值的位置移至关联数组中的下一个索引

如何制作一个唯一的关联数组?

将第一个值设置为Javascript数组中的键