向数组添加值到特定的关键位置并将数组的其余部分向右移动[重复]

Posted

技术标签:

【中文标题】向数组添加值到特定的关键位置并将数组的其余部分向右移动[重复]【英文标题】:add value to array to particular key position and shift rest of array to right [duplicate] 【发布时间】:2016-11-14 23:45:04 【问题描述】:

我有一个类似的数组

Array ( [0] => xyz [1] => 93049 [2] => London [3] => Telephone: 45687654 [4] => Telefax: 54478453248 [5] => [6] => )

现在我想在关键位置 [1] 添加一个空白值并将数组的其余部分移到右侧,如

Array ( [0] => xyz [1] => [2] => 93049 [3] => London [4] => Telephone: 45687654 [5] => Telefax: 54478453248 [6] => [7] => )

我如何在 php 中做到这一点。 请提出建议。

【问题讨论】:

【参考方案1】:

array_splice() 函数将解决您的目的。

试试这个:

$original = array(
    'xyz', 93049, 'London', 'Telephone: 45687654', 'Telefax: 54478453248', '', '' 
);
echo '<pre>';
print_r($original);

原始数组:

   Array
(
[0] => xyz
[1] => 93049
[2] => London
[3] => Telephone: 45687654
[4] => Telefax: 54478453248
[5] => 
[6] => 
)

$pos = 1;       // Position where you want to insert
$string = '';   // The string you want to insert
array_splice($original, $pos, 0, '');

print_r($original);

最终输出:

  Array
(
[0] => xyz
[1] => 
[2] => 93049
[3] => London
[4] => Telephone: 45687654
[5] => Telefax: 54478453248
[6] => 
[7] => 
)

【讨论】:

是的,这解决了我的目的,非常感谢。【参考方案2】:
$original = array( '0', '2', '3', '4', '5' );
$inserted = array( '1' ); 
array_splice( $original, 1, 0, $inserted );

【讨论】:

【参考方案3】:

array_splice 可以胜任:

<?php
$arr = Array( "xyz","93049","London","Telephone: 45687654","Telefax: 54478453248","","" );
$new = Array( "" );
array_splice( $arr,1,0,$new ); // INSERT THE $NEW ARRAY IN POSITION 1.
var_dump( $arr );
?>

结果如下:

array (size=8)
  0 => string 'xyz' (length=3)
  1 => string '' (length=0)
  2 => string '93049' (length=5)
  3 => string 'London' (length=6)
  4 => string 'Telephone: 45687654' (length=19)
  5 => string 'Telefax: 54478453248' (length=20)
  6 => string '' (length=0)
  7 => string '' (length=0)

或者:

Array ( [0] => xyz [1] => [2] => 93049 [3] => London [4] => Telephone: 45687654 [5] => Telefax: 54478453248 [6] => [7] => ) 

【讨论】:

【参考方案4】:

您可以任意放置一个您认为是黑色空间的值...

例如,我在任意考虑当“BLANK”这个词出现时, 它是一个空格......所以:

数组([0] => xyz [1] => 空白 [2] => 93049 [3] => 伦敦 [4] => 电话:45687654 [5] => 传真:54478453248 [6] => [7] => ....

这不是一个明确的解决方法,但如果您不是在寻找最干净的方法,它会解决。

【讨论】:

这并没有回答如何插入一个位置并移动其他值的问题。

以上是关于向数组添加值到特定的关键位置并将数组的其余部分向右移动[重复]的主要内容,如果未能解决你的问题,请参考以下文章

leetcode每日一题

leetcode每日一题

LeetCode1089. 复写零(C++)

将数组向右而不是向左旋转

获取 JSON 值到数组

如何将数组中的元素向右移动?