PHP如何给数组分配键并将用户名与邮箱按对应关系分组为新数组
实现方案
你的原始数组前半段为按顺序的用户名,后半段为对应顺序的邮箱,直接按索引匹配拼接即可,代码如下:
// 原始数组 $originArr = [ 'alexg', 'benny', 'shahar', 'alexag@website.com', 'ben_r@website.com', 'shah_iar@website.com' ]; $res = []; // 计算数组半长作为邮箱的索引偏移量 $offset = count($originArr) / 2; for ($i = 0; $i < $offset; $i++) { $res[] = [ 'USERLOGIN' => $originArr[$i], 'EMAIL' => $originArr[$i + $offset] ]; } // 输出验证 var_dump($res);
如果你已经生成了每个元素仅含单个键的中间数组,可以用下面的方式转换得到目标结构:
// 你当前的中间数组 $middleArr = [ ['USERLOGIN' => 'benny'], ['USERLOGIN' => 'alexg'], ['USERLOGIN' => 'shahar'], ['EMAIL' => 'bennyr@website.com'], ['EMAIL' => 'alexg@website.com'], ['EMAIL' => 'shahar@website.com'], ]; $res = []; $offset = count($middleArr) / 2; for ($i = 0; $i < $offset; $i++) { $res[] = array_merge($middleArr[$i], $middleArr[$i + $offset]); }
注意:需要保证原始数组/中间数组的前半段用户名顺序和后半段邮箱顺序一一对应,否则会出现匹配错误。
内容的提问来源于stack exchange,提问作者YanNis87
相关产品推荐
相关产品推荐

