>  기사  >  백엔드 개발  >  PHP 배열 중복 제거

PHP 배열 중복 제거

WBOY
WBOY원래의
2016-07-29 09:15:431087검색

1차원 배열

<code><span>$aa</span>=<span>array</span>(<span>"apple"</span>,<span>"banana"</span>,<span>"pear"</span>,<span>"apple"</span>,<span>"wail"</span>,<span>"watermalon"</span>);
 <span>$bb</span>=array_unique(<span>$aa</span>);
 print_r(<span>$bb</span>);<span>//Array ( [0] => apple [1] => banana [2] => pear [4] => wail [5] => watermalon</span></code>

2차원 배열

1) 특정 키 이름의 값은 중복될 수 없으므로 중복된 항목은 삭제하세요

<code><span>$aa</span> = <span>array</span>(
            <span>array</span>(<span>'id'</span> => <span>123</span>, <span>'name'</span> => <span>'张三'</span>),
            <span>array</span>(<span>'id'</span> => <span>123</span>, <span>'name'</span> => <span>'李四'</span>),
            <span>array</span>(<span>'id'</span> => <span>124</span>, <span>'name'</span> => <span>'王五'</span>),
            <span>array</span>(<span>'id'</span> => <span>125</span>, <span>'name'</span> => <span>'赵六'</span>),
            <span>array</span>(<span>'id'</span> => <span>126</span>, <span>'name'</span> => <span>'赵六'</span>)
            );
<span>//需求,id 不能重复</span><span><span>function</span><span>assoc_unique</span><span>(<span>$arr</span>, <span>$key</span>)</span>{</span><span>$tmp_arr</span> = <span>array</span>();
        <span>foreach</span>(<span>$arr</span><span>as</span><span>$k</span> => <span>$v</span>){
            <span>//搜索$v[$key]是否在$tmp_arr数组中存在,若存在返回true</span><span>if</span>(in_array(<span>$v</span>[<span>$key</span>], <span>$tmp_arr</span>)){
                 <span>unset</span>(<span>$arr</span>[<span>$k</span>]);
            }<span>else</span> {
                <span>$tmp_arr</span>[] = <span>$v</span>[<span>$key</span>];
            }
        }
        sort(<span>$arr</span>); <span>//sort函数对数组进行排序</span><span>return</span><span>$arr</span>;
}
<span>$key</span> = <span>'id'</span>;
assoc_unique(&<span>$aa</span>, <span>$key</span>);
print_r(<span>$aa</span>);
<span>//Array ( [0] => Array ( [id] => 123 [name] => 张三 ) [1] => Array ( [id] => 124 [name] => 王五 ) [2] => Array ( [id] => 125 [name] => 赵六 ) [3] => Array ( [id] => 126 [name] => 赵六 ) )</span></code>

2) 내부의 1차원 배열은 완전히 동일할 수 없기 때문에 중복된 항목은 삭제합니다.

<code><span>$aa</span> = <span>array</span>(
            <span>array</span>(<span>'id'</span> => <span>123</span>, <span>'name'</span> => <span>'张三'</span>),
            <span>array</span>(<span>'id'</span> => <span>123</span>, <span>'name'</span> => <span>'李四'</span>),
            <span>array</span>(<span>'id'</span> => <span>124</span>, <span>'name'</span> => <span>'王五'</span>),
            <span>array</span>(<span>'id'</span> => <span>123</span>, <span>'name'</span> => <span>'李四'</span>),
            <span>array</span>(<span>'id'</span> => <span>126</span>, <span>'name'</span> => <span>'赵六'</span>)
            );
<span><span>function</span><span>array_unique_fb</span><span>(<span>$array2D</span>)</span>{</span><span>foreach</span> (<span>$array2D</span><span>as</span><span>$v</span>){
                     <span>$v</span> = join(<span>","</span>,<span>$v</span>); <span>//降维,也可以用implode,将一维数组转换为用逗号连接的字符串</span><span>$temp</span>[] = <span>$v</span>;
                 }
                 <span>$temp</span> = array_unique(<span>$temp</span>);    <span>//去掉重复的字符串,也就是重复的一维数组</span><span>foreach</span> (<span>$temp</span><span>as</span><span>$k</span> => <span>$v</span>){
                    <span>$temp</span>[<span>$k</span>] = explode(<span>","</span>,<span>$v</span>);   <span>//再将拆开的数组重新组装</span>
                }
                <span>return</span><span>$temp</span>;
            }
            <span>$bb</span>=array_unique_fb(<span>$aa</span>);
            print_r(<span>$bb</span>);
            <span>//Array ( [0] => Array ( [0] => 123 [1] => 张三 ) [1] => Array ( [0] => 123 [1] => 李四 ) [2] => Array ( [0] => 124 [1] => 王五 ) [4] => Array ( [0] => 126 [1] => 赵六 ) )  </span></code>

저작권: 지식은 사람에게서 나오고, 사람에게서 사용됩니다 사람들에 의해! 재인쇄도 환영합니다. 기사의 시작 부분에 링크를 첨부해 주세요. 기사는 수시로 업데이트됩니다.

위 내용은 PHP 배열 중복 제거에 대한 내용을 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.