【问题标题】:Insert element into array [duplicate]将元素插入数组[重复]
【发布时间】:2013-10-24 05:09:27
【问题描述】:

我有一个数组

array(1) {
 [0]=>
  array(4) {
   [0]=>
   string(1) "1"
   [1]=>
   string(2) "10"
   [2]=>
   string(3) "100"
   [3]=>
   string(3) "200"
   }
}

我想在数组中插入两个元素,必须是第三个也是最后一个元素。

输出:

array(6) {
 [0]=>
  array(6) {
   [0]=>
   string(1) "1"
   [1]=>
   string(2) "10"
   [2]=>
   string(1) ""
   [3]=>
   string(3) "100"
   [4]=>
   string(3) "200"
   [5]=>
   string(1) ""
   }
}

我该怎么做?

我尝试过的

array_splice($input,3 ,0,"");

然后结果变成这样,中间没有添加数组

 array(6) {
 [0]=>
  array(6) {
   [0]=>
   string(1) "1"
   [1]=>
   string(2) "10"
   [2]=>
   string(1) ""
   [3]=>
   string(3) "100"
   [4]=>
   string(3) "200"
   [5]=>
   string(1) ""
   }
 [1]=>
 array(1) {
   [0]=>
   string(1) ""
 }
}

【问题讨论】:

    标签: php


    【解决方案1】:

    要插入到数组中间,可以使用array_splice,长度为0。

    array_splice($input, 3, 0, "");

    要添加到数组中,您可以使用array_push[] operator

    【讨论】:

    • [] 运算符优先推送,因为您没有函数调用。
    • 另一方面,array_push 允许通过单个调用附加多个元素:)
    • 绝对正确,加上它返回新的大小,所以你不必在它上面调用count()。始终取决于用例。 :)
    • 但我的输出将被添加为数组(1)而不是数组的中间(0)
    • @user2210819 在您的情况下,您必须对 $input[0] 进行操作,因为 $input[0] 包含您要修改的数组。
    【解决方案2】:

    通过使用array_splice,您可以在数组中插入元素

     $array = [0 => 'Data', 1 => 'data2', 2=> 'data3'];
     array_splice($array, 1, 0, 'data append');
     var_dump($array);
    

    【讨论】:

      猜你喜欢
      • 2013-02-12
      • 2018-02-04
      • 2019-12-05
      • 1970-01-01
      • 1970-01-01
      • 2017-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多