简体   繁体   English

PHP-在多维数组内插入数组

[英]php - Insert an array inside a multidimensionnal array

I have a multidimensional array where I want to insert an other array inside it with a var array. 我有一个多维数组,我想在其中使用var数组在其中插入另一个数组。

My aim is to insert some element array with if statement. 我的目的是用if语句插入一些元素数组。 In fact I want to build a kind of conditionnal array. 实际上,我想构建一种条件数组。

Here an example 这是一个例子

$inserted_array[] = array( 
    'name' => 'name',
    'desc' => 'a description',
    'id' => 'an id',
    'type' => 'image',
    'std' => '',
);
$inserted_array[] = array(
    'name' => 'name',
    'desc' => 'a description',
    'id' => 'an id',
    'type' => 'image',
    'std' => '',
);

$main_arrays[] = array(
    'id'    => '1234',
    'title' => 'a title',
    'icon'  => 'icon-1',
    'fields' => array(
        array( 
            'name' => 'name',
            'desc' => 'a description',
            'id' => 'an id',
            'type' => 'image',
            'std' => '',
        ),
        //$inserted_array here for example
        array(
            'name' => 'name',
            'desc' => 'a description',
            'id' => 'an id',
            'type' => 'image',
            'std' => '',
        ),
    )
);

How can I do this kind of thing? 我该怎么做?

If you want to insert the $inserted_array into $main_arrays[]['fields] at a given $position 如果要将$inserted_array给定$position $main_arrays[]['fields]

You can achieve it by using array_splice function 您可以使用array_splice函数来实现

array_splice($main_arrays[$index]['fields'], $position, 0, $inserted_array);

$index being the $main_arrays index in wich you want to insert the $inserted_array $index是要插入$inserted_array$main_arrays索引

$position being the position wich at you want to insert you're array $position是要插入数组的位置

i belive what you want is: 我相信你想要的是:

$mainID = 1234;
$main_arrays[$mainID] = array(
    'title' => 'a title',
    'icon'  => 'icon-1',
    'fields' => array()
);

$main_arrays[$mainID]["fields"][] = array( 
    'name' => 'nameA',
    'desc' => 'a description',
    'id' => 'an id',
    'type' => 'image',
    'std' => '',
);


$main_arrays[$mainID]["fields"][] = array(
    'name' => 'nameB',
    'desc' => 'a description',
    'id' => 'an id',
    'type' => 'image',
    'std' => '',
);


foreach($main_arrays as $id => $inserted_array) {
    print("ID: ".$id."\n");
    print_r($inserted_array);
}

OUTPUT: 输出:

   ID: 1234
    Array
    (
        [title] => a title
        [icon] => icon-1
        [fields] => Array
            (
                [0] => Array
                    (
                        [name] => nameA
                        [desc] => a description
                        [id] => an id
                        [type] => image
                        [std] => 
                    )

                [1] => Array
                    (
                        [name] => nameB
                        [desc] => a description
                        [id] => an id
                        [type] => image
                        [std] => 
                    )

            )

    )

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM