Vergleich Array mit Multiarray
Hallo,
habe da mal ein Problem.
Ich will werte aus einem Array mit Werten aus einem Mult-array vergleichen.
Wenn ich zwei Arrays vergleiche, bekomme ich das korrekte Ergebnis:
Enthalten sind 31, 37
Nun soll aber $a1 ein Multiarray sein und für jeden Eintag verglichen werden.
Da sollte folgenes bei herauskommen:
Enthalten sind 31, 37
Enthalten sind 16
Da kommt aber kein Ergebnis bei heraus.
Muss bestimmt mit foreach gelöst werden, weiß aber nicht wie.
Danke im Voraus.
Gruß Jörg
habe da mal ein Problem.
Ich will werte aus einem Array mit Werten aus einem Mult-array vergleichen.
Wenn ich zwei Arrays vergleiche, bekomme ich das korrekte Ergebnis:
$a1=@(3,11,25,31,37,19)
$b1=@(8,15,16,20,37,31)
$c1 = $a1 | Where {$b1 -Contains $_}
$ofs = ', '
"Enthalten sind $c1
"
Nun soll aber $a1 ein Multiarray sein und für jeden Eintag verglichen werden.
$a1=@((3,11,25,31,37,19),(9,10,12,16,23,27))
$b1=@(8,15,16,20,37,31)
$c1 = $a1 | Where {$b1 -Contains $_}
$ofs = ', '
"Enthalten sind $c1
Enthalten sind 31, 37
Enthalten sind 16
Da kommt aber kein Ergebnis bei heraus.
Muss bestimmt mit foreach gelöst werden, weiß aber nicht wie.
Danke im Voraus.
Gruß Jörg
5 Antworten
- LÖSUNG colinardo schreibt am 26.08.2018 um 13:12:57 Uhr
- LÖSUNG joes1609 schreibt am 26.08.2018 um 14:13:46 Uhr
- LÖSUNG colinardo schreibt am 26.08.2018 um 16:49:53 Uhr
- LÖSUNG joes1609 schreibt am 26.08.2018 um 17:37:27 Uhr
- LÖSUNG colinardo schreibt am 26.08.2018 um 16:49:53 Uhr
- LÖSUNG joes1609 schreibt am 26.08.2018 um 14:13:46 Uhr
- LÖSUNG joes1609 schreibt am 26.08.2018 um 13:25:37 Uhr
LÖSUNG 26.08.2018, aktualisiert um 13:14 Uhr
LÖSUNG 26.08.2018 um 14:13 Uhr
Und wie sieht es aus, wenn ich die Daten aus einer Textdatei einlese will ?
c:\temp\test.txt
3,11,25,31,37,19
9,10,12,16,23,27
$a1=@(Get-content c:\temp\test.txt -Delimiter ',')
$b1=@(8,15,16,20,37,31)
$a1 | %{
"Enthalten sind: $(($_ | ?{$_ -in $b1}) -join ',')"
}
Gibt folgendes Ergebnis
Enthalten sind:
Enthalten sind:
Enthalten sind:
Enthalten sind: 31,
Enthalten sind: 37,
Enthalten sind:
Enthalten sind:
Enthalten sind:
Enthalten sind: 16,
Enthalten sind:
Enthalten sind:
c:\temp\test.txt
3,11,25,31,37,19
9,10,12,16,23,27
$a1=@(Get-content c:\temp\test.txt -Delimiter ',')
$b1=@(8,15,16,20,37,31)
$a1 | %{
"Enthalten sind: $(($_ | ?{$_ -in $b1}) -join ',')"
}
Gibt folgendes Ergebnis
Enthalten sind:
Enthalten sind:
Enthalten sind:
Enthalten sind: 31,
Enthalten sind: 37,
Enthalten sind:
Enthalten sind:
Enthalten sind:
Enthalten sind: 16,
Enthalten sind:
Enthalten sind:
LÖSUNG 26.08.2018, aktualisiert um 17:15 Uhr
Und wie sieht es aus, wenn ich die Daten aus einer Textdatei einlese will ?
Ähnlich nur das du eben für jede Zeile der Datei die gespliteten Strings erst von einem String in eine Zahl wandeln musst, du kannst ja nicht Birnen mit Bananen vergleichen $b1=@(8,15,50,20,37,31)
gc 'C:\temp\test.txt' | %{
"Enthalten sind: $(($_.split(',') | ?{[decimal]$_ -in $b1}) -join ',')"
}
Bitte nutze in Zukunft Code-Tags für deinen Quellcode: <code> Quellcode </code>. Merci.