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);