array_unique() ist die schreibweise egal
array_intersect() mit unterschiedlichen array - wie?
Einklappen
X
-
Kann ich mir nicht vorstellenarray_unique() ist die schreibweise egal
@topicstarterNote: Two elements are considered equal if and only if (string) $elem1 === (string) $elem2. In words: when the string representation is the same. The first element will be used.
http://ch2.php.net/manual/en/functio...ique.php#78801
Gruss
tobiGutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten
[color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Kommentar
-
Diese Funktion gibit dasselbe Ergebniss aus wie array_unique:Original geschrieben von jahlives
Kann ich mir nicht vorstellen
@topicstarter
http://ch2.php.net/manual/en/functio...ique.php#78801
Gruss
tobi
$a = array('aaa' => '#1', 'AAA' => '#2', 'ccc' => '#3');
#$diff = array_unique($a);
function array_iunique($diff) {
return array_intersect_key($diff,array_unique(array_map(strtolower,$diff)));
}
print_r($diff);
Mache ich da etwas falsch?
Kommentar
-
Mal ne Frage: Wie kommst du drauf, dass array_unique() die Schlüssel eines Arrays bearbeiten würde? Es geht um die Werte der einzelnen Einträge und nicht um deren Key. Du kannst in einem Array gar nicht zwei identische Keys haben, da sonst der zweite Eintrag mit demselben Key den ersten einfach überschreibt.Mache ich da etwas falsch?
Gruss
tobiGutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten
[color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Kommentar
-
Mein Ziel ist es , einzelne PHP-Funktionen besser zu verstehen.Original geschrieben von TobiaZ
Was ist eigentlich dein End-Ziel? Vielleicht kann man dich irgendwann von deinen Irr-Wegen wegholen?
EDIT: Ein End-Ziel gibt es nicht, in welcher Form auch immer.Zuletzt geändert von janein; 27.11.2007, 15:07.
Kommentar
-
In der Doku steht, dass array_unique() case sensitive ist. Was da nicht steht ist, wie es auch case insensitive geht. Hast Du vielleicht neben Deinen pädagogischen Empfehlungen auch ein Beispeil für case insensitives array_unique()?Original geschrieben von TobiaZ
Achso, ...
OffTopic:
eigentlich machen alle Funktionen das, was auch in der Doku steht.
Kommentar
-
Wen wundert es? Oder siehst du in diesem Array irgendwo doppelte Werte???Diese Funktion gibit dasselbe Ergebniss aus wie array_unique:
$a = array('aaa' => '#1', 'AAA' => '#2', 'ccc' => '#3');
#$diff = array_unique($a);
function array_iunique($diff) {
return array_intersect_key($diff,array_unique(array_map(strtolower,$diff)));
}
print_r($diff);
Tipp key !== value
Gruss
tobiGutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten
[color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Kommentar
-
Du hast eben noch gesagt, dass du die Funktionen verstehen willst. Auf einmal hast du doch ein konkretes Ziel. Sorry, Erziehung scheint mir bei dir die beste Hilfe zur Selbsthilfe zu sein.
Dein Problem scheint zu sein, dass du deine Probleme nicht erkennst, geschweige denn ausdrücken kannst.
eine funktion für array_iunique (auch wenns eigentlich schwachsinn ist) hast du ja schon gefunden.
Funktioniert wie gewünscht.PHP-Code:<?php
print_r(array_iunique(array('a','A','b')));
function array_iunique($array) {
return array_intersect_key($array,array_unique(
array_map(strtolower,$array)));
}
?>
Dass du so grundlegende Dinge wie Schlüssel und Werte nicht auseinanderhalten kannst, behindert natürlich etwas beim erreichen deiner Ziele.
In diesem Sinne.
grundlagen!!!
Kommentar
-
Weil du eine PHP Version < 5.1.0 verwendest. Das stünde auch im Manual zu dieser Funktion. Jetzt wird es aber mal Zeit das du dort reinschaustUnd warum erhalte ich bei Deinem copy and paste Beispiel das:
Gruss
tobiGutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten
[color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Kommentar
-
Wenn noch jemand ein ähnlichen Fall hat, hier eine Lösung, neben all den vergebliche pädagogischen Ratschlägen:
$b = array('aaa','bbb','AAA');
function array_iunique($arr){
foreach ($arr as $key => $value) {
$arr[$key] = strtolower($value);
}
return array_unique($arr);
}
$new_array = array_iunique($b);
print_r($new_array);Zuletzt geändert von janein; 27.11.2007, 15:44.
Kommentar

Moderator
Kommentar