Array remove the same php -
i have array this:
array ( [0] => array ( [fileid] => 7 [remarks] => [filename] => whomovedmycheese - copy.pdf [type] => application/pdf [size] => 500624 ) [1] => array ( [fileid] => 7 [remarks] => [filename] => whomovedmycheese.pdf [type] => application/pdf [size] => 500624 ) [2] => array ( [fileid] => 8 [remarks] => [filename] => whomovedmycheese - copy.pdf [type] => application/pdf [size] => 500624 ) [3] => array ( [fileid] => 8 [remarks] => [filename] => whomovedmycheese.pdf [type] => application/pdf [size] => 500624 ) ) this array want remove duplicate. tried remove duplicated using below code.
$input4 = array_map("unserialize", array_unique(array_map("serialize", $basicinfo3))); $new_data3 = array_values($input4); but result still same starting array. in above code $basicinfo has value of array above.what want remove duplicate array below.
array ( [0] => array ( [fileid] => 7 [remarks] => [filename] => whomovedmycheese - copy.pdf [type] => application/pdf [size] => 500624 ) [1] => array ( [fileid] => 7 [remarks] => [filename] => whomovedmycheese.pdf [type] => application/pdf [size] => 500624 ) ) update
array ( [008-408-601-000-0] => array ( [id] => 008-408-601-000 [lastname] => smith [firstname] => john [email] => john@yahoo.com [address] => array ( [0] => array ( [language] => c++ ) [1] => array ( [language] => c++ ) [2] => array ( [language] => c++ ) [3] => array ( [language] => java ) [4] => array ( [language] => java ) [5] => array ( [language] => java ) ) ) [002-408-641-000-0] => array ( [id] => 008-408-601-000 [lastname] => smith [firstname] => jack [email] => jack@yahoo.com [address] => array ( [0] => array ( [language] => c++ ) [1] => array ( [language] => c++ ) [2] => array ( [language] => c++ ) [3] => array ( [language] => java ) [4] => array ( [language] => java ) [5] => array ( [language] => java ) ) ) [001-002-003-000-0] => array ( [id] => 008-408-601-000 [lastname] => smith [firstname] => jean [email] => jean@yahoo.com [address] => array ( [0] => array ( [language] => c++ ) [1] => array ( [language] => c++ ) [2] => array ( [language] => c++ ) [3] => array ( [language] => java ) [4] => array ( [language] => java ) [5] => array ( [language] => java ) ) ) )
you can't use function above since takes account whole array batch uniqueness, can see, fileid differs same filename. if need based on filename, normal loop should suffice.
in sample output, seems first ones found priority simple isset should okay.
$input4 = array(); foreach($basicinfo3 $values) { if(!isset($input4[$values['filename']])) { $input4[$values['filename']] = $values; // if doesn't exist yet, push } } $input4 = array_values($input4); // simple reindex
Comments
Post a Comment