Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP列表数组_Php_Arrays - Fatal编程技术网

PHP列表数组

PHP列表数组,php,arrays,Php,Arrays,是否可以从具有函数的数组中列出数组 我有一个插件的配置数组,我在其中调用函数,该函数将从数组中列出数组 'fields' => array( array('id'=>'someid','id'=>'something'), array('id'=>'someid','id'=>'something'), array('id'=>'someid','id'=>'

是否可以从具有函数的数组中列出数组

我有一个插件的配置数组,我在其中调用函数,该函数将从数组中列出数组

'fields' => array(
                array('id'=>'someid','id'=>'something'),
                array('id'=>'someid','id'=>'something'),
                array('id'=>'someid','id'=>'something')
            )
我做了一个函数:

在数组中调用config()函数时,我得到:

但我需要:

我知道这是可行的:

'fields' => array(
                    array('id'=>'someid','id'=>'something'),
                    array('id'=>'someid','id'=>'something'),
                    array('id'=>'someid','id'=>'something'),
                    list($a,$b)=config(),
                    $a,$b,
                )
但这对我帮助不大,因为有时会有很多$a、$、$c、$d等,所以如果函数能够列出这些数组,那将是最好的


是否有一些方法可以摆脱该容器数组并将数组直接列出到另一个数组?

array\u merge
适用于您。它将两个或多个数组合并到一个数组中

<?php

$arr = array(
    'fields' => array(
        array('id1'=>'someid','id2'=>'something'),
        array('id1'=>'someid','id2'=>'something'),
        array('id1'=>'someid','id2'=>'something')
        )
       );

function config(){
    $a = array('id1'=>'someidA','id2'=>'somethingA');
    $b = array('id1'=>'someidB','id2'=>'somethingB');
    return array($a,$b);

}

$config_arr = config();
$arr['fields'] = array_merge($arr['fields'], $config_arr);
print_r($arr);
?>

array\u merge
适合您。它将两个或多个数组合并到一个数组中

<?php

$arr = array(
    'fields' => array(
        array('id1'=>'someid','id2'=>'something'),
        array('id1'=>'someid','id2'=>'something'),
        array('id1'=>'someid','id2'=>'something')
        )
       );

function config(){
    $a = array('id1'=>'someidA','id2'=>'somethingA');
    $b = array('id1'=>'someidB','id2'=>'somethingB');
    return array($a,$b);

}

$config_arr = config();
$arr['fields'] = array_merge($arr['fields'], $config_arr);
print_r($arr);
?>

作为Samir解决方案的替代方案

通过使用“splat操作符”(
)从
config()
解压返回的数组,然后使用
array\u push()
附加两个子数组,可以获得所需的结果

代码:()


作为Samir解决方案的替代方案

通过使用“splat操作符”(
)从
config()
解压返回的数组,然后使用
array\u push()
附加两个子数组,可以获得所需的结果

代码:()

array\u push($fields\u array,$a)在函数中需要做的事情。表示将数组传递给函数,并在函数内部将该数组推送到原始的
字段
数组。请看
array\u push($fields\u array,$a)在函数中需要做的事情。意味着将数组传递给函数,并在函数内部将该数组推送到原始的
字段
'fields' => array(
                    array('id'=>'someid','id'=>'something'),
                    array('id'=>'someid','id'=>'something'),
                    array('id'=>'someid','id'=>'something'),
                    list($a,$b)=config(),
                    $a,$b,
                )
<?php

$arr = array(
    'fields' => array(
        array('id1'=>'someid','id2'=>'something'),
        array('id1'=>'someid','id2'=>'something'),
        array('id1'=>'someid','id2'=>'something')
        )
       );

function config(){
    $a = array('id1'=>'someidA','id2'=>'somethingA');
    $b = array('id1'=>'someidB','id2'=>'somethingB');
    return array($a,$b);

}

$config_arr = config();
$arr['fields'] = array_merge($arr['fields'], $config_arr);
print_r($arr);
?>
Array
(
    [fields] => Array
        (
            [0] => Array
                (
                    [id1] => someid
                    [id2] => something
                )

            [1] => Array
                (
                    [id1] => someid
                    [id2] => something
                )

            [2] => Array
                (
                    [id1] => someid
                    [id2] => something
                )

            [3] => Array
                (
                    [id1] => someidA
                    [id2] => somethingA
                )

            [4] => Array
                (
                    [id1] => someidB
                    [id2] => somethingB
                )

        )

)
$config = [
    'fields' => [
        ['id1' => 'someid', 'id2' => 'something'],
        ['id1' => 'someid', 'id2' => 'something'],
        ['id1' => 'someid', 'id2' => 'something']
    ]
];

function config() {
    $a = ['id1' => 'someidA','id2' => 'somethingA'];
    $b = ['id1' => 'someidB','id2' => 'somethingB'];
    return [$a, $b];
}

array_push($config['fields'], ...config());
var_export($config);