I have this array. In this I want to skip the value for reverse data.
$data = array(
array(2, 1),
array(1, 2),
array(1, 2),
array(2, 1),
array(2, 3),
array(3, 2),
array(4, 5)
);
I want to skip the values:
array(1,2)
array(1,2)
array(2,1)
array(3,2)
And I want the result array to be like this:
array(
array(2, 1),
array(2, 3),
array(4, 5)
);
$data = [[2,1], [1,2], [1,2], [2,1], [2,3], [3,2], [4,5]];
$data = array_map(
function($value) {
sort($value);
return serialize($value);
},
$data
);
$data = array_unique($data);
$data = array_map('unserialize', $data);
array_walk($data, 'sort');
var_dump($data);
EDIT
As per arbogast's comment, this can be simplified even further, eliminating the serialize/unserialize steps:
$data = [[2,1], [1,2], [1,2], [2,1], [2,3], [3,2], [4,5]];
array_walk($data, 'sort');
$data = array_unique($data, SORT_REGULAR);
var_dump($data);