Abzüglich des Test-Arrays sind es inkl. Leerzeilen ca. 10 Zeilen.
Für die Funktionsweise des Regex siehe Bild im Anhang.
PHP-Code<?php
$items = [
[ 3, 3, 7 ],
[ 3, 3, 3 ],
[ 3, 3, 3, 3 ],
[ 0, 3, 3, 3, 2, 7, 7, 7, 7, 3, 2, 1, 1, -2, 4, 4, 8, 9, 8, 6 ],
[ -3, -3, 5, 44, 44, -55, -55 ] // (negative) multiple digits
];
$results = [];
foreach ($items as $key => $item) {
$val = implode(',', $item);
preg_match_all('/([^,]+?),\1/', $val, $matches);
$results[$key]['value'] = $val;
$results[$key]['doublets'] = $matches[0];
}
var_dump($results);
Konsolenausgabe:
array(5) {
[0]=>
array(2) {
["value"]=>
string(5) "3,3,7"
["doublets"]=>
array(1) {
[0]=>
string(3) "3,3"
}
}
[1]=>
array(2) {
["value"]=>
string(5) "3,3,3"
["doublets"]=>
array(1) {
[0]=>
string(3) "3,3"
}
}
[2]=>
array(2) {
["value"]=>
string(7) "3,3,3,3"
["doublets"]=>
array(2) {
[0]=>
string(3) "3,3"
[1]=>
string(3) "3,3"
}
}
[3]=>
array(2) {
["value"]=>
string(40) "0,3,3,3,2,7,7,7,7,3,2,1,1,-2,4,4,8,9,8,6"
["doublets"]=>
array(5) {
[0]=>
string(3) "3,3"
[1]=>
string(3) "7,7"
[2]=>
string(3) "7,7"
[3]=>
string(3) "1,1"
[4]=>
string(3) "4,4"
}
}
[4]=>
array(2) {
["value"]=>
string(21) "-3,-3,5,44,44,-55,-55"
["doublets"]=>
array(3) {
[0]=>
string(5) "-3,-3"
[1]=>
string(5) "44,44"
[2]=>
string(7) "-55,-55"
}
}
}
Admin: 0