我有一个像这样的数组['id' => 1, 'name' => 'Fred'].
我想调用array_map这个数组,并使用函数内部的键.但是,当我返回时,我的密钥将变为int.
简单的例子:
$arr = array('id' => 1, 'name' => 'Fred');
$result = array_map(
function ($value, $key) {
return $value;
},
$arr,
array_keys($arr)
);
var_dump($result);
Run Code Online (Sandbox Code Playgroud)
基本上,我希望在这种情况下$result完全相同$arr,但它会将我的字符串键变为整数.
Mar*_*cos 12
你将使用的最接近的array_map()是:
<?php
$arr = array('id'=>1,'name'=>'Jon');
$callback = function ($key, $value) {
return array($key => $value);
};
$arr = array_map( $callback, array_keys($arr), $arr);
var_dump($arr);
?>
Run Code Online (Sandbox Code Playgroud)
得到:
[
[
"id" => 1
],
[
"name" => "Jon"
]
]
Run Code Online (Sandbox Code Playgroud)
你最好用foreach内部创建自己的功能.
对于“ $ result与$ arr相同”的要求,请尝试:
$result = array_combine(
array_keys($arr),
array_map(function($v){ return $v; }, $arr)
);
Run Code Online (Sandbox Code Playgroud)
给出:
[
"id" => 1
"name" => "Fred"
]
Run Code Online (Sandbox Code Playgroud)