PHP two-dimensional array deduplication method (retain each key value while removing repeated items) uniqueness of two-dimensional array-php Tutorial

Source: Internet
Author: User
PHP two-dimensional array de-duplication method (retain each key value while removing repeated items) the uniqueness of the two-dimensional array for the following two-dimensional array requires de-duplication:

$arr = array(          '0'=>array(                    'name'=>'james',                    'age'=>30,                    ),          '1'=>array(                    'name'=>'susu',                    'age'=>26,                    ),          '2'=>array(                    'name'=>'james',                    'age'=>30,                    ),          'new'=>array(                    'name'=>'kube',                    'age'=>37,                    ),          'list'=>array(                    'name'=>'kube',                    'age'=>27,                    ),          );


1. the values in the one-dimensional array inside the two-dimensional array cannot be identical. delete the repeated items:

The code is as follows:

 Array ('name' => 'James ', 'age' => 30,), '1' => array ('name' => 'susu ', 'age' => 26,), '2' => array ('name' => 'James ', 'age' => 30 ,), 'New' => array ('name' => 'kube ', 'age' => 37 ,), 'list' => array ('name' => 'kube ', 'age' => 27,),); printf ("Before tranform the array:
"); // Output the original array print_r ($ arr); echo"
"; Function more_array_unique ($ arr = array () {foreach ($ arr [0] as $ k = >$ v) {$ arr_inner_key [] = $ k; // record the key value of the inner array of the two-dimensional array in the one-dimensional array} foreach ($ arras $ k => $ v) {$ v = join (",", $ v); // use implode () for dimensionality reduction. $ temp [$ k] = $ v; // retain the original key value $ temp [], that is, do not retain the original key value} printf ("After split the array:
"); Print_r ($ temp); // outputs the split array echo"
"; $ Temp = array_unique ($ temp); // deduplication: remove the repeated string foreach ($ tempas $ k = >$ v) {$ a = explode (", ", $ v); // The restructured result after splitting, for example, Array ([0] => james [1] => 30) $ arr_after [$ k] = array_combine ($ arr_inner_key, $ a); // re-combine the original key and value} // ksort ($ arr_after ); // sort the array as needed: ksort sorts the array (retain the original key value key), sort does not retain the key value return $ arr_after;} $ arr_new = more_array_unique ($ arr ); // call the deduplicated function printf ("Duplicate removal of the array:
"); Print_r ($ arr_new); echo"
";?>


Output result:

Before tranform the array: // original array
Array ([0] => Array ([name] => james [age] => 30) [1] => Array ([name] => susu [age] => 26) [2] => Array ([name] => james [age] => 30) [new] => Array ([name] => kube [age] => 37) [list] => Array ([name] => kube [age] => 27 ))
After split the array: // array After split
Array ([0] => james, 30 [1] => susu, 26 [2] => james, 30 [new] => kube, 37 [list] => kube, 27)
Duplicate removal of thearray: // deduplicated array
Array ([0] => Array ([name] => james [age] => 30) [1] => Array ([name] => susu [age] => 26) [new] => Array ([name] => kube [age] => 37) [list] => Array ([name] => kube [age] => 27 ))

2. because a key value of a one-dimensional array cannot be the same, delete the repeated items:

/* Deduplicate a key value */

 $ V) {if (in_array ($ v [$ key], $ tmp_arr) // search for $ v [$ key] in the $ tmp_arr array, if yes, true {unset ($ arr [$ k]) is returned. // destroy a variable. if $ tmp_arr already has the same value, delete the variable.} else {$ tmp_arr [$ k] = $ v [$ key]; // store different values in this array} // ksort ($ arr); // The ksort function sorts the array (retain the original key value key) return $ arr;} $ key = 'name'; $ arr_key = second_array_unique_bykey ($ arr, $ key ); printf ("As for the givenkey-> % s:
", $ Key); print_r ($ arr_key); echo"
";?>


Output result:

As for the given key-> name:
Array ([0] => Array ([name] => james [age] => 30) [1] => Array ([name] => susu [age] => 26) [new] => Array ([name] => kube [age] => 37 ))

Copyright Disclaimer: This article is an original article by the blogger and cannot be reproduced without the permission of the blogger.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.