我有以下代码:
array_map(
function (ReflectionParameter $parameter){
$paramName = $parameter->getName();
return $this->params[$paramName];
,
$this->getParametersNeededByTheConstructor()
);
输出如下内容:
- [0] => 'ParamValue'
- [2] => 'ParamValue'
- [3] => 'ParamValue'
- [4] => 'ParamValue'
- [5] => 'ParamValue'
醇>
有没有办法在上面的代码中设置数组索引?例如:
- [paramName0] => 'ParamValue'
- [paramName2] => 'ParamValue'
- [paramName3] => 'ParamValue'
- [paramName4] => 'ParamValue'
- [paramName5] => 'ParamValue'
醇>
答案 0 :(得分:1)
我不相信你可以使用foreach
执行此操作,但您可以使用简单的$params = [];
foreach ($this->getParametersNeededByTheConstructor() as $parameter) {
$paramName = $parameter->getName();
$params[$paramName] = $this->params[$paramName];
}
循环。
$params = [];
foreach ($this->getParametersNeededByTheConstructor() as $parameter) {
(function(ReflectionParameter $parameter) {
$paramName = $parameter->getName();
$params[$paramName] = $this->params[$paramName];
})($parameter);
}
如果您的IDE没有自动检测循环变量的类型,您可以将主体包装在匿名函数中
$query = "SELECT * FROM `perfis` WHERE id= `".$_SESSION['perfil']."`;";
$result = mysqli_query($con,$query);
$regPerfil = mysqli_fetch_array($result);
答案 1 :(得分:1)
要从当前数组获得预期数组,可以使用数组合并和foreach循环 循环使用键值创建新数组,数组合并使用键作为新数组中的键,将原始数组的值作为值。
$arr = array( 0=> 'ParamValue',
2 => 'ParamValue',
3 => 'ParamValue',
4 => 'ParamValue',
5 => 'ParamValue');
$keys =array();
Foreach($arr as $key =>$val){
$keys[] = $val . $key;
}
$result = array_combine($keys, $arr);
Var_dump($result);