我有一个具有相同键值uid的多维数组。我想把它转换成子数组通过限制Foreachloop.you可以看到两个uid有值100和两个uid有值5465
$userdb=Array
(
0 => Array
(
"uid"=> '100',
"name" => 'Sandra Shush',
"url"=> 'urlof100'
),
1 => Array
(
"uid"=> '5465',
"name" => 'Sandra Shush',
"url"=> 'urlof100'
),
2 => Array
(
"uid"=> '100',
"name" => 'Sandra Shush',
"url"=> 'urlof100'
),
3 => Array
(
"uid"=> '5465',
"name" => 'Sandra Shush',
"url"=> 'urlof100'
),
);
我想得到这样的阵列。
$userdb=Array
(
0 => Array(
0 => Array
(
"uid"=> '100',
"name" => 'Sandra Shush',
"url"=> 'urlof100'
),
2 => Array
(
"uid"=> '100',
"name" => 'Sandra Shush',
"url"=> 'urlof100'
)
),
1=> Array(
1 => Array
(
"uid"=> '5465',
"name" => 'Sandra Shush',
"url"=> 'urlof100'
),
3 => Array
(
"uid"=> '5465',
"name" => 'Sandra Shush',
"url"=> 'urlof100'
)
)
);
我可以不使用foreach循环得到结果吗?
$userdb=[ ["uid"=> '100', "name" => 'Sandra Shush',"url"=> 'urlof100'],
["uid"=> '5465', "name" => 'Sandra Shush',"url"=> 'urlof100'],
["uid"=> '100', "name" => 'Sandra Shush',"url"=> 'urlof100'],
["uid"=> '5465', "name" => 'Sandra Shush',"url"=> 'urlof100']];
foreach($userdb as $value) {
$result[$value['uid']][] = $value;
}
print_r(array_values($result));
输出:
Array
(
[0] => Array
(
[0] => Array
(
[uid] => 100
[name] => Sandra Shush
[url] => urlof100
)
[1] => Array
(
[uid] => 100
[name] => Sandra Shush
[url] => urlof100
)
)
[1] => Array
(
[0] => Array
(
[uid] => 5465
[name] => Sandra Shush
[url] => urlof100
)
[1] => Array
(
[uid] => 5465
[name] => Sandra Shush
[url] => urlof100
)
)
)
没有循环是不可能的,但是您可以将循环限制为唯一的uid。
// Get all uids to an flat array
$uid = array_column($userdb, "uid");
// Loop the unique uids and find all matching uids and place them in array
foreach(array_unique($uid) as $id){
$new[] = array_intersect_key($userdb, array_intersect($uid, [$id]));
}
var_dump($new);
这返回为您的预期结果。
https://3v4l.org/nWFVP
我正在寻找一个算法,可以分裂整数数组尽可能多的子数组与X的和。我试图创建数组从hi到low,但最后我只剩下2的束,不可能创建子集与奇数和。 [7,4]和剩余。
基本上,我要问的是给定一个正方形2D阵列和一个有效的补丁大小(2D子阵列的大小),我将如何做到这一点。最终,我不需要以任何方式存储子阵列,我只需要找到每个子阵列的中值并将它们存储在一个一维阵列中。中值和存储到新阵列对我来说很简单,我只是不知道如何处理原始2D阵列并正确拆分它。我已经尝试了几次,但一直出现越界错误。我有一个4x4: 我需要像这样拆分它 < code>[1,2] [3,4] [2,3]
我想检查是否可以将一个数组拆分为具有相同和的连续子数组。拆分数组还意味着删除数组的边框元素。 例如,要将其拆分为3个部分,我们需要删除到元素 通过删除这2个元素,就有3个相同和的连续子数组,和。 因此,如果可以将数组拆分为3个部分(等和)并删除它们之间的边界,则应返回true,否则应返回false。 返回的示例是。因为删除2个元素后,它将有4个元素,这些元素不能分组为3个相等的和 我不知道如何处理
我有一个PHP数组,其中包含一组用户。每个用户都属于一个团队。阵列将如下所示。 $Array=Array('User1','User2','User3','User4','User5'); 我需要得出以下逻辑。 如果“User1”和“User2”属于同一个名为“Team1”的团队,而其他用户拥有单独的唯一团队,则应按如下所示对阵列重新排序。 $Array=Array('User1','User3'
给定一个值数组,我如何将它分成由相等元素组成的? 给定这个数组 我想要这个输出 解决这一问题的一种可能方法是创建某种索引,以指示每个元素的出现情况。 最后使用索引重建输出数组。 但是,使用此解决方案,我会丢失原始值。当然,在这种情况下,这不是一个大问题(一个值仍然存在,即使重新创建,),但我想将此解决方案应用于像这样更复杂的数据结构 实际上,我正在寻找的函数是与相反的函数 我希望我已经说清楚了,如