Mailinglisten-Archive |
Hi!
Versuch's mal damit:
<?php
$array = array (
11 => array (0 => null, 1 => null, 2 => null),
12 => array (0 => null, 1 => null, 2 => null),
13 => array (0 => 1, 1 => 1, 2 => null),
14 => array (0 => null, 1 => null, 2 => 1)
);
$hashes = array ();
foreach ($array as $key => $subarray) {
if (!is_array ($subarray)) continue;
$val = "";
foreach ($subarray as $value) {
$val .= $value;
}
$val = md5 ($val);
if (in_array ($val, $hashes)) {
unset ($array[$key]);
} else {
$hashes[] = $val;
}
}
$array = array_values ($array);
print_r ($array);
?>
Je nachdem welche Daten gespeichert werden, kannst du das md5 auch
weglassen (Rechenleistung) oder einen anderen Alogrithmus verwenden.
Mein Gedanke dabei war nur, dass wenn du z.B. Texte oder ähnliches im
Array speicherst, so ist es schneller und speicherschonender einen 32
Zeichen langen Hashcode zu vergleichen als z.B. einen 200 Zeichen langen
Text. Beinhaltet das Array jedoch lediglich Zahlen, so kannst du das md5
natürlich weglassen.
Ich bekomme folgende Ausgabe:
Array
(
[0] => Array
(
[0] =>
[1] =>
[2] =>
)
[1] => Array
(
[0] => 1
[1] => 1
[2] =>
)
[2] => Array
(
[0] =>
[1] =>
[2] => 1
)
)
MfG Jay
php::bar PHP Wiki - Listenarchive