Mehrfache gleiche Einträge im Array auslesen

  • Hallo,
    im Array kann man Sortieren, die Anzahl auslesen, doppelte Einträge löschen usw.
    Frage: Wie kann ich die Anzahl der gleichen Einträge auslesen?
    Lg.
    :o Adolpho

  • Diese Funktion liefert dir die Indexe der gleichen Einträge als ein Array zurück:

    PHP
    <span class="syntaxdefault">function sameness</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">array $Search</span><span class="syntaxkeyword">){<br /></span><span class="syntaxdefault">    $same </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">    </span><span class="syntaxcomment">// $i = 0;<br /><br /></span><span class="syntaxdefault">    foreach</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$Search as $Part</span><span class="syntaxkeyword">){<br /></span><span class="syntaxdefault">        if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">array_search</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$Part</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $Search</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">!=</span><span class="syntaxdefault"> false<br />           AND<br />           count</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">array_keys</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$Search</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $Part</span><span class="syntaxkeyword">))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">></span><span class="syntaxdefault"> 1</span><span class="syntaxkeyword">){<br /></span><span class="syntaxdefault">            </span><span class="syntaxcomment">//      $i   Wenn gezählt werden soll<br /></span><span class="syntaxdefault">            $same</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$Part</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> array_keys</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$Search</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $Part</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">            </span><span class="syntaxcomment">// $i++;<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    reset</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$Search</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">    return $same</span><span class="syntaxkeyword">;<br />}</span><span class="syntaxdefault"> </span>


    Wenn du die Kommentare entfernst und anstelle von $same[$Part] $same[$i] schreibst, wird als Index nicht mehr der gleiche Wert, sondern einfach nur eine Zahl genommen.
    Bsp.:

    PHP
    <span class="syntaxdefault">$MeinArray </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Apfel"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Birne"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Pfirsich"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Kiwi"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Banane"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Birne"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Apfel"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Orange"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Kiwi"</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">'<pre>'</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">print_r</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">sameness</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$MeinArray</span><span class="syntaxkeyword">));<br /><br /></span><span class="syntaxcomment">// Gibt folgendes zurück:<br /></span><span class="syntaxkeyword">Array<br />(<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">Birne</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> Array<br />        </span><span class="syntaxkeyword">(<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 1<br />            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 5<br />        </span><span class="syntaxkeyword">)<br /><br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">Kiwi</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> Array<br />        </span><span class="syntaxkeyword">(<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 3<br />            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 8<br />        </span><span class="syntaxkeyword">)<br /><br />)</span><span class="syntaxdefault"> </span>


    Edit: Gerade gesehen.. die Anzahl.. dann müsstest du theoretisch einfach nur immer Zählen, wie viele gleiche Einträge es sind (count(array_keys($Search, $Part))) und die Anzahl in Eine Variabel legen.. (und jeweils immer um ein weiteres erhöhen, oder wie auch immer.. :D )

  • Hallo,
    irgendetwas funktioniert noch nicht ganz richtig.
    Wenn ich mein Array erweitere, so erhalte ich keine vollständige Ausgabe.


    PHP
    <span class="syntaxdefault">$MeinArray </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Birne"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Apfel"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Birne"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Birne"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Pfirsich"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Birne"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Birne"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Pfirsich"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Orange"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Orange"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Kiwi"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Banane"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Birne"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Apfel"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Orange"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Kiwi"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault"> </span>


    Dann erhalte ich soetwas.


    PHP
    <span class="syntaxdefault"></span><span class="syntaxkeyword">Array<br />(<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">Apfel</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> Array<br />        </span><span class="syntaxkeyword">(<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 1<br />            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 13<br />        </span><span class="syntaxkeyword">)<br /><br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">Pfirsich</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> Array<br />        </span><span class="syntaxkeyword">(<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 4<br />            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 7<br />        </span><span class="syntaxkeyword">)<br /><br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">Orange</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> Array<br />        </span><span class="syntaxkeyword">(<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 8<br />            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 9<br />            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 14<br />        </span><span class="syntaxkeyword">)<br /><br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">Kiwi</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> Array<br />        </span><span class="syntaxkeyword">(<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 10<br />            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 15<br />        </span><span class="syntaxkeyword">)<br />)<br /><br /></span><span class="syntaxdefault"> </span>


    Wo bitte bleiben die Birnen?


    Lg.
    :? Adolpho

  • Ich habe gesucht und gesucht.. aber nichts gefunden, erst als ich mir dann dachte "Hey, das array_search ist ja eigentlich überflüssig, den wenn du überprüfst, ob das Wort mindestens 2 mal vorkommt, hat man ja direkt auch erfahren, ob es überhaupt vorhanden ist. Daher kannste das ja schon mal weg machen" und die Funktion J4F ausprobiert habe, durfte ich folgendes Festellen: :D

    PHP
    <span class="syntaxdefault"></span><span class="syntaxkeyword">Array<br />(<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">Birne</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> Array<br />        </span><span class="syntaxkeyword">(<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 0<br />            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 2<br />            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 3<br />            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">3</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 5<br />            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">4</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 6<br />            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">5</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 12<br />        </span><span class="syntaxkeyword">)<br /><br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">Apfel</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> Array<br />        </span><span class="syntaxkeyword">(<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 1<br />            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 13<br />        </span><span class="syntaxkeyword">)<br /><br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">Pfirsich</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> Array<br />        </span><span class="syntaxkeyword">(<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 4<br />            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 7<br />        </span><span class="syntaxkeyword">)<br /><br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">Orange</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> Array<br />        </span><span class="syntaxkeyword">(<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 8<br />            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 9<br />            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 14<br />        </span><span class="syntaxkeyword">)<br /><br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">Kiwi</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> Array<br />        </span><span class="syntaxkeyword">(<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 10<br />            </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 15<br />        </span><span class="syntaxkeyword">)<br /><br />)</span><span class="syntaxdefault"> </span>


    Der richtige Code also:

    PHP
    <span class="syntaxdefault">function sameness</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">array $Search</span><span class="syntaxkeyword">){<br /></span><span class="syntaxdefault">    $same </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">    </span><span class="syntaxcomment">// $i = 0;<br /><br /></span><span class="syntaxdefault">    foreach</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$Search as $Part</span><span class="syntaxkeyword">){<br /></span><span class="syntaxdefault">        if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">count</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">array_keys</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$Search</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $Part</span><span class="syntaxkeyword">))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">></span><span class="syntaxdefault"> 1</span><span class="syntaxkeyword">){<br /></span><span class="syntaxdefault">            </span><span class="syntaxcomment">//      $i   Wenn gezählt werden soll<br /></span><span class="syntaxdefault">            $same</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$Part</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> array_keys</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$Search</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $Part</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">            </span><span class="syntaxcomment">// $i++;<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    reset</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$Search</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">    return $same</span><span class="syntaxkeyword">;<br />}</span><span class="syntaxdefault"> </span>

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!