【问题标题】:PHP Insert array to associative array at specific positionPHP将数组插入到特定位置的关联数组
【发布时间】:2019-03-12 15:43:11
【问题描述】:

我想在特定位置将一个数组插入另一个关联数组,但对我来说,array_splice 不起作用。 我想这样做:

    $example = [
       'first' => 'element',
       'second' => 'element'];
    $example[] = [
       'third' => 'element',
       'fourth' => 'element'];

现在我们有一个关联数组,里面有两个数组。 我想在其中插入另一个数组,例如在它之间。这很重要,我想插入到特定的索引。

     $insert[] = [
        'insert_first' => 'element',
        'insert_second' => 'element'];
     //I made before it: 
     $index = 1;
     array_splice($example, $index, 0, $insert); //but it doesn't work :(

我想要以下结果:

array(
 [0] => array(
    'first' => 'element',
    'second' => 'element'
 )
 [1] => array(
    'insert_first' => 'element',
    'insert_second' => 'element'
 )
 [2] => array(
    'third' => 'element',
    'fourth' => 'element'
 )
)

有人可以帮我怎么做吗?

谢谢,来自匈牙利的 Balázs。

【问题讨论】:

  • 我想你错过了$example中的[],如果你想要想要的结果应该是$example[]
  • 我不认为你的起始数组是你认为的那样。
  • 查看php.net/manual/en/function.array-splice.php 的关联数组(字符串键)array_splice_assoc

标签: php arrays insert associative-array array-splice


【解决方案1】:
$example[] = [
   'first' => 'element',
   'second' => 'element'];
$example[] = [
   'third' => 'element',
   'fourth' => 'element'];
$insert[] = [
    'insert_first' => 'element',
    'insert_second' => 'element'];

$index = 1;
array_splice($example, $index, 0, $insert);
print_r($example);

给你:

Array ( 
 [0] => Array ( [first] => element [second] => element ) 
 [1] => Array ( [insert_first] => element [insert_second] => element ) 
 [2] => Array ( [third] => element [fourth] => element ) )

【讨论】:

    【解决方案2】:

    您的原始数组不正确。正确一个:

    // Here you have array with one element which is array:
    $example = [
       [
           'first' => 'element',
           'second' => 'element'
       ]
    ];
    // Add another element which is array too
    $example[] = [
       'third' => 'element',
       'fourth' => 'element'];
    // define insert array
    $insert[] = [
        'insert_first' => 'element',
        'insert_second' => 'element'
    ];
    $index = 1;
    array_splice($example, $index, 0, $insert);
    

    【讨论】:

      猜你喜欢
      • 2021-05-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-24
      • 1970-01-01
      • 2017-06-09
      • 2011-03-22
      • 1970-01-01
      相关资源
      最近更新 更多