$arr1 = array(array("username"=>"zhang","y_1"=>"t","y_2"=>"f","y_3"=>"f","y_4"=>"f","y_5"=>"f"), array("username"=>"tan","y_1"=>"f","y_2"=>"t","y_3"=>"f","y_4"=>"f","y_5"=>"f"), array("username"=>"lu","y_1"=>"f","y_2"=>"t","y_3"=>"f","y_4"=>"f","y_5"=>"f"), array("username"=>"zhang","y_1"=>"f","y_2"=>"t","y_3"=>"t","y_4"=>"f","y_5"=>"f"), array("username"=>"wu","y_1"=>"t","y_2"=>"t","y_3"=>"f","y_4"=>"f","y_5"=>"f"),
array("username"=>"zhang","y_1"=>"t","y_2"=>"f","y_3"=>"f","y_4"=>"f","y_5"=>"t"),
);將數組中username相同的數組重新組合,但y_1........y_5 的值在合並前先判斷, 如果有一個值為“t”,則值賦為“t”,都為"f"的話,就賦為"f"。
如下是按上面的數組重新得出的新數組,請問在php用什麼辦法可以對數組進行重新排列得到如下的結果:$arr1 = array(array("username"=>"zhang","y_1"=>"t","y_2"=>"t","y_3"=>"t","y_4"=>"f","y_5"=>"t"), array("username"=>"tan","y_1"=>"f","y_2"=>"t","y_3"=>"f","y_4"=>"f","y_5"=>"f"), array("username"=>"lu","y_1"=>"f","y_2"=>"t","y_3"=>"f","y_4"=>"f","y_5"=>"f"), array("username"=>"wu","y_1"=>"t","y_2"=>"t","y_3"=>"f","y_4"=>"f","y_5"=>"f"),
);
array("username"=>"zhang","y_1"=>"t","y_2"=>"f","y_3"=>"f","y_4"=>"f","y_5"=>"t"),
);將數組中username相同的數組重新組合,但y_1........y_5 的值在合並前先判斷, 如果有一個值為“t”,則值賦為“t”,都為"f"的話,就賦為"f"。
如下是按上面的數組重新得出的新數組,請問在php用什麼辦法可以對數組進行重新排列得到如下的結果:$arr1 = array(array("username"=>"zhang","y_1"=>"t","y_2"=>"t","y_3"=>"t","y_4"=>"f","y_5"=>"t"), array("username"=>"tan","y_1"=>"f","y_2"=>"t","y_3"=>"f","y_4"=>"f","y_5"=>"f"), array("username"=>"lu","y_1"=>"f","y_2"=>"t","y_3"=>"f","y_4"=>"f","y_5"=>"f"), array("username"=>"wu","y_1"=>"t","y_2"=>"t","y_3"=>"f","y_4"=>"f","y_5"=>"f"),
);
array("username"=>"zhang","y_1"=>"t","y_2"=>"f","y_3"=>"f","y_4"=>"f","y_5"=>"t"),
);foreach($arr1 as $v) {
$f = array_count_values($v);
if(! $r[$v['username']] || $f==5) $r[$v['username']] = $v;
}
$arr1 = array_slice($r, 0);
print_r($arr1);Array
(
[zhang] => Array
(
[username] => zhang
[y_1] => t
[y_2] => f
[y_3] => f
[y_4] => f
[y_5] => f
) [tan] => Array
(
[username] => tan
[y_1] => f
[y_2] => t
[y_3] => f
[y_4] => f
[y_5] => f
) [lu] => Array
(
[username] => lu
[y_1] => f
[y_2] => t
[y_3] => f
[y_4] => f
[y_5] => f
) [wu] => Array
(
[username] => wu
[y_1] => t
[y_2] => t
[y_3] => f
[y_4] => f
[y_5] => f
))
(
[username] => zhang
[y_1] => t
[y_2] => t
[y_3] => t
[y_4] => f
[y_5] => t
)
相同名稱,在相同y_1的情況上,以t值為最終結果。
if(! $r[$v['username']]) $r[$v['username']] = $v;
foreach($v as $k=>$t) {
if($t == 't') $r[$v['username']][$k] = 't';
}
}
$arr1 = array_slice($r, 0);
print_r($arr1);Array
(
[zhang] => Array
(
[username] => zhang
[y_1] => t
[y_2] => t
[y_3] => t
[y_4] => f
[y_5] => t
)
[tan] => Array
(
[username] => tan
[y_1] => f
[y_2] => t
[y_3] => f
[y_4] => f
[y_5] => f
)
[lu] => Array
(
[username] => lu
[y_1] => f
[y_2] => t
[y_3] => f
[y_4] => f
[y_5] => f
)
[wu] => Array
(
[username] => wu
[y_1] => t
[y_2] => t
[y_3] => f
[y_4] => f
[y_5] => f
)
)