PHP で array_unique を使用して二次配列から重複する値を削除する方法。必要な友達はそれを参照できます。
コードは次のとおりです |
コードをコピー |
$input = array("a" => "緑","", "赤","b" => "緑", "","青", "赤","c" => "ウィター"、"こんにちは"、"ウィター");
//$result = array_unique($input); //重複した要素を削除します
$result = a_array_unique($input);?? // 要素は 1 つだけ残ります
foreach($result as $aa)
{
echo $aa.” ”;
}
関数 multi_unique($array) {
foreach ($array as $k=>$na)
$new[$k] = シリアル化($na);
$uniq = array_unique($new);
foreach($uniq as $k=>$ser)
$new1[$k] = unserialize($ser);
return ($new1);
}
function a_array_unique($array)//より良く書かれています
{
$out = array();
foreach ($array as $key=>$value) {
if (!in_array($value, $out))
{
$out[$key] = $value;
}
}
$out を返します;
}
?>
|
array_unique 関数は 1 次元配列にのみ適用され、多次元配列には適用できません。ただし、データを走査して演算を実行することで、array_unique を実現して重複した配列を削除できます。
コードは次のとおりです |
コードをコピー |
関数 unique_arr($array2D,$stkeep=false,$ndformat=true)
{
// 第 1 レベルの配列キーを保持するかどうかを決定します (第 1 レベルの配列キーは数値以外の場合もあります)
if($stkeep) $stArr = array_keys($array2D);
// セカンダリ配列キーを保持するかどうかを決定します (すべてのセカンダリ配列キーは同じである必要があります)
if($ndformat) $ndArr = array_keys(end($array2D));
//次元削減。implode を使用して 1 次元配列をカンマで接続された文字列に変換することもできます
foreach ($array2D を $v){
$v = join(“,”,$v);
$temp[] = $v;
}
// 繰り返される文字列、つまり繰り返される 1 次元配列を削除します
$temp = array_unique($temp);
// 逆アセンブルした配列を再アセンブルします
foreach ($temp as $k => $v)
{
if($stkeep) $k = $stArr[$k];
if($ndformat)
{
$tempArr =explode(“,”,$v);
foreach($tempArr as $ndkey => $ndval) $output[$k][$ndArr[$ndkey]] = $ndval;
}
else $output[$k] =explode(“,”,$v);
}
$output を返します;
}
$array2D = array('first'=>array('title'=>'1111','date'=>'2222'),'first'=>array('title'=>'1111 ','日付'=>'2222'),'三番目'=>array('タイトル'=>'2222','日付'=>'3333'));
print_r($array2D);
print_r(unique_arr($array2D,true));
|
http://www.bkjia.com/PHPjc/628911.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/628911.html技術記事 PHP で array_unique を使用してセカンダリ配列から重複する値を削除する方法。必要な友達はそれを参照できます。 コードは次のとおりです コードをコピーします ?php $input = array(a = green,, red,b = gre...