以下是一个简单的映射方案示例,
正如我所说,当我听到“映射”一词时,我想到的就是这个,但他们可能指的是不同的东西。
$data = [
'fname' => 'John',
'lname' => 'Doe',
];
$map = [
'lname' => 'last',
'fname' => 'first'
];
$blank = array_fill_keys(array_keys($map), '');
$ordered = array_replace($blank, $data);
$output = array_combine($map, $ordered);
输出:
Array
(
[last] => Doe
[first] => John
)
你可以在这里在线查看
同时请注意,我故意改变了数组的顺序,以显示顺序无关紧要。这也有填充任何缺失数据的好处。所以一个例子是这样的(与上面相同的代码):
$data = [
'fname' => 'John',
'lname' => 'Doe',
//middle name data is missing
];
$map = [
'lname' => 'last',
'fname' => 'first',
'mname' => 'middle'
];
输出(使用引号表示空字符串):
Array
(
[last] => Doe
[first] => John
[middle] => ''
)
这是一种非常简单、直接的方法,很容易在以后添加新字段。因此,我想与您分享,如果确实是这样的话。
唯一需要补充的是,不要害怕询问他们所说的映射是什么意思。有些术语在不同的地方可能略有不同。最坏的情况是他们会说你是个白痴(讽刺话,我并不是说你是,只是他们不太可能这么说)...哈哈...不,他们可能只会说你需要将他们的字段映射到你的Web应用程序字段上。通常,他们有兴趣让你使用他们的API,否则开发API就没有意义了。因此,作为他们服务的消费者,他们倾向于帮助您。
fname
、lname
,但他们给你的是first
和last
,那么你就需要将first
映射到fname
,将last
映射到lname
。它们可能意味着其他的东西,但这就是我通常所说的映射。通常我会使用这样的数组['fname' => 'first', 'lname' => 'last']
,然后使用array_key_intersect
和array_merge
等函数,将他们给你的数据转换为你需要的数据。 - ArtisticPhoenix