$arr 1 = Array (' 0 ' = = Array (' FID ' = + 1, ' tid ' = + 1, ' name ' = ' Name2 '), ' 2 ' = = ' Array (' fid ' = 1, ' tid ') = 1, ' name ' = ' Name1 '), ' 1 ' = = Array (' FID ' = 1, ' tid ' = + 5, ' name ' = ' Name3 '), ' 3 ' = = array (' fid ' = 1, ' tid ' = + 7, ' name ' = ' = ' Name4 '), ' 4 ' = = Array (' sid ' = + 2, ' tid ' = + 9, ' name ' = ' = ' name 5 '), ' 5 ' = = Array (' cid ' = 2, ' tid ' = + 9, ' name ' = ' Name5 '));
What is the quickest way to group with the key name Fid,sid,cid.
Reply to discussion (solution)
$arr 1 = array (' 0 ' = = Array (' FID ' = 1, ' tid ' = + 1, ' name ' = = ' Name2 '), ' 2 ' = > Array (' FID ' = + 1, ' tid ' = + 1, ' name ' = ' = ' Name1 '), ' 1 ' = = Array (' FID ' = 1, ' tid ' = + 5, ' name ' =& gt; ' Name3 '), ' 3 ' = = Array (' FID ' = + 1, ' tid ' = + 7, ' name ' = ' Name4 '), ' 4 ' = = ' Array (' sid ' = + 2, ' tid ' = 9, ' name ' = ' Name5 '), ' 5 ' = = Array (' cid ' = 2, ' tid ' = + 9, ' name ' = ' Name5 ')); foreach ($arr 1 as $v) { $k = key ($v); $res [$k] = $v;} Print_r ($res);
Array ([FID] = Array ([0] = = Array ([FID] = 1 [Tid] = 1 [name] = Name2) [1] = = Array ([FID] = 1 [tid] = 1 [name] = Name1) [2] = = Array ([FID] = 1 [tid] = 5 [Name] = Name3) [3] = = Array ([FID] = 1 [Tid] = 7 [name] = Name4)) [SID] = = Array ([0] = = Array ([sid] = 2 [tid] = 9 [Name] = Name5)) [CID] = array ([0] = = Array ( [CID] = 2 [tid] = 9 [name] = Name5)))
Consider that the key names of each member array may be inconsistent, that is, the SID may be behind name
Can be
$k = key ($v);
Switch
$k = key (Array_intersect_key (' fid ' = = ', ' sid ' = ' = ', ' cid ' = '), $v));