【问题标题】:splice array of arrays拼接数组
【发布时间】:2013-02-13 00:17:42
【问题描述】:

我有数组数组:

Array
(
   [0] => "title"
   [1] => Array
         (
             [0] => a
             [1] => b
             [2] => c
         )
   [2] => Array
         (
             [0] => d
             [1] => e
             [2] => f
         )
)

我需要将一个数组插入到第一个数组中,如下所示

Array
(
   [0] => "title"
   [1] => Array
         (
             [0] => a
             [1] => b
             [2] => c
         )
   [2] => Array
         (
             [0] => a1
             [1] => b1
             [2] => c1
         )
   [3] => Array
         (
             [0] => d
             [1] => e
             [2] => f
         )
)

我不知道如何使用array_splice()。我用这种方法试过了,但是没有用。

array_splice($main_array, 2, 0 $array_to_insert)

【问题讨论】:

  • 这是 PHP,不是 JavaScript。
  • 你对array_splice的返回值做了什么吗?
  • 我认为他谈论的是arrayName.splice,而不是array_splice。 js也是。
  • 是的,$arr = array_splice(.....);
  • 你是对的 zozo,看来我搞砸了。我说的是 array.splice()(javascript 不是 php)。

标签: php arrays splice


【解决方案1】:

nameOfArray[3] = [“d”、“e”、“f”]。 splice 也可以,但必须像这样使用:array.splice(index, howMany, whatToInsert)

【讨论】:

  • 实际上 ['d', 'e', 'f'] 已经存在于我的数组中。我需要在它之前插入 ['a1', 'b1', 'c1]。
【解决方案2】:

我想这会对你有所帮助...

    var a = [1,2,3,4,5];
a.splice(2,0,'a','b');  // Returns []; a is [1,2,'a','b',3,4,5]
a.splice(2,2,[1,2],3);  // Returns ['a','b']; a is [1,2,[1,2],3,3,4,5]

【讨论】:

    【解决方案3】:

    更新:阅读 cmets 后,这似乎是一个 javascript 问题。 :) ??!!.. 只是为了完整起见,这是一个 PHP 解决方案 - 根据要求 ;)


    array_splice() 是正确的方法。使用以下代码:

    <?php
    
    $arr = array (
     'title',
     array('a', 'b', 'c'),
     array('d', 'e', 'f')
    );
    var_dump($arr);
    
    // note that I've wrapped the array to be inserted into another, empty, array
    array_splice($arr, 2, 0, array(array('a1', 'b1', 'c1')));
    
    // further note that array_splice will not return the new array. $arr is
    // passed by reference and will get modified from inside of array_splice
    var_dump($arr);
    

    【讨论】:

      【解决方案4】:

      请检查以下代码

       $array_to_insert = array(0  => array( 0 => 'a1',1 => 'b1',2 => 'c1'));
         // You need to have nexted array
      
          $main_array = array(0 => "title",1 => array(0 => a,1 => b,2 => c),2 => array(0 => d,1 => 
      e,2 => f));
      
          array_splice($main_array, 2, 0, $array_to_insert); 
      
          var_dump($main_array);
      

      【讨论】:

        【解决方案5】:
        $main_array = array(0 => "title",1 => array("a","b"));
        
        $array_to_insert = array("c","d");
        
        $new_array = array_splice($main_array, 1, 0, array($array_to_insert));
        
        print_r($main_array);
        

        【讨论】:

          猜你喜欢
          • 2011-03-19
          • 2015-05-18
          • 2015-04-13
          • 1970-01-01
          • 1970-01-01
          • 2014-04-21
          • 2011-10-29
          • 2015-02-14
          • 1970-01-01
          相关资源
          最近更新 更多