如何使用php在数组的两个键之间插入一个值?
Posted
技术标签:
【中文标题】如何使用php在数组的两个键之间插入一个值?【英文标题】:How do I insert a value in between two keys in an array using php? 【发布时间】:2012-01-02 06:51:36 【问题描述】:我有一个包含 3 个值的数组:
$b = array('A','B','C');
这是原始数组的样子:
数组([0] => A [1] => B [2] => C)
我想在第一个键和第二个键之间的位置插入一个特定的值(例如字母'X'),然后将其后面的所有值向下移动一个。所以实际上它会变成第二个值,第二个会变成第三个,第三个会变成第四个。
这就是数组之后的样子:
数组([0] => A [1] => X [2] => B [3] => C)
如何使用 php 在数组的两个键之间插入一个值?
【问题讨论】:
见***.com/questions/3797239/… 【参考方案1】:有一种方法不用array_splice
。它更简单,但是更脏。
这是你的代码:
$arr = array('A', 'B', 'C');
$arr['1.5'] = 'X'; // '1.5' should be a string
ksort($arr);
输出:
Array
(
[0] => A
[1] => B
[1.5] => X
[2] => C
)
【讨论】:
这实际上并没有回答问题,因为它依赖于已经知道所有索引。如果你想再次推动 1 和 2 之间的东西怎么办?您需要记住是否已经有 1.5。 但如果您只需要在特定位置输入一个值,这是一个很好的快速解决方案。 +1【参考方案2】:array_splice()
是你的朋友:
$arr = array('A','B','C');
array_splice($arr, 1, 0, array('X'));
// $arr is now array('A','X','B','C')
此函数操作数组,通常用于截断数组。但是,如果您“告诉它”删除零个项目 ($length == 0
),您可以在指定索引处插入一个或多个项目。
请注意,要插入的值必须在数组中传递。
【讨论】:
以上是关于如何使用php在数组的两个键之间插入一个值?的主要内容,如果未能解决你的问题,请参考以下文章