PHP多维数组按去重后的uid获取对应所有name的实现方法
实现代码
// 按uid聚合所有name,自动完成uid去重 $temp = []; foreach ($userdb as $item) { $uid = $item['uid']; !isset($temp[$uid]) && $temp[$uid] = []; // 若需要同uid下的name也去重,可放开下面的判断 // if (!in_array($item['name'], $temp[$uid])) { $temp[$uid][] = $item['name']; // } } // 格式化为要求的输出结构 $data = []; foreach ($temp as $uid => $names) { $data[] = [ 'uid' => $uid, // 单个name输出字符串,多个输出数组 'name' => count($names) === 1 ? $names[0] : $names ]; } // 如需输出你示例中的JSON格式,执行以下代码即可 echo json_encode($data, JSON_UNESCAPED_UNICODE);
输出结果
执行后$data的结构和你要求完全一致,转JSON后输出为:
[{"uid":"100","name":"Sandra Shush"},{"uid":"5465","name":["Stefanie Mcmohn","Jane Doe"]},{"uid":"40489","name":["Michael","Jane Doe"]}]
内容的提问来源于stack exchange,提问作者caia
相关产品推荐
相关产品推荐

