在分解键后,我尝试从一个简单数组中获取一个多维数组。 我的数组是多个输入的结果,其中名称是根据 md5 哈希值和输入的实际名称动态生成的。 我需要使用 md5 字符串作为键并对相对值进行分组。
$old_array = [
'ec0e2603172c73a8b644bb9456c1ff6e-name' => 'Bruce',
'ec0e2603172c73a8b644bb9456c1ff6e-surname' => 'Wayne',
'ec0e2603172c73a8b644bb9456c1ff6e-city' => 'Gotham',
'84d961568a65073a3bcf0eb216b2a576-name' => 'Clark',
'84d961568a65073a3bcf0eb216b2a576-surname' => 'Kent',
'84d961568a65073a3bcf0eb216b2a576-city' => 'Metropolis',
//etc
];
这就是我想要得到的:
$new_array = [
'ec0e2603172c73a8b644bb9456c1ff6e' => [
'name' => 'Bruce',
'surname' => 'Wayne',
'city' => 'Gotham'
],
'84d961568a65073a3bcf0eb216b2a576' => [
'name' => 'Clark',
'surname' => 'Kent',
'city' => 'Metropolis'
]
];
最佳答案
只需将数组键按 -
分解并使用该数组键分区值存储在新数组中即可。
$array = [
'ec0e2603172c73a8b644bb9456c1ff6e-name' => 'Bruce',
'ec0e2603172c73a8b644bb9456c1ff6e-surname' => 'Wayne',
'ec0e2603172c73a8b644bb9456c1ff6e-city' => 'Gotham',
'84d961568a65073a3bcf0eb216b2a576-name' => 'Clark',
'84d961568a65073a3bcf0eb216b2a576-surname' => 'Kent',
'84d961568a65073a3bcf0eb216b2a576-city' => 'Metropolis',
//etc
];
$out = array();
foreach($array as $key => $val){
$tmp = explode("-", $key);
$out[$tmp[0]][$tmp[1]] = $val;
}
echo '<pre>';
print_r($out);
关于php - 按分解的键字符串对数组进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37342800/