2016-12-18 3 views
0

Ich habe ein mehrdimensionales Array, das wie folgt aussieht:Zählwerte in bestimmten Position in mehrdimensionales Array

array(6) { 
    [0]=> 
    array(6) { 
    [0]=> 
    string(5) "email" 
    [1]=> 
    string(5) "vote1" 
    [2]=> 
    string(5) "vote2" 
    [3]=> 
    string(5) "vote3" 
    [4]=> 
    string(5) "vote4" 
    [5]=> 
    string(5) "vote5" 
    } 
    [1]=> 
    array(6) { 
    [0]=> 
    string(5) "[email protected]" 
    [1]=> 
    string(1) "A" 
    [2]=> 
    string(1) "B" 
    [3]=> 
    string(1) "C" 
    [4]=> 
    string(1) "D" 
    [5]=> 
    string(1) "E" 
    } 
    [2]=> 
    array(6) { 
    [0]=> 
    string(5) "[email protected]" 
    [1]=> 
    string(1) "A" 
    [2]=> 
    string(1) "B" 
    [3]=> 
    string(1) "C" 
    [4]=> 
    string(1) "D" 
    [5]=> 
    string(1) "E" 
    } 
    [3]=> 
    array(6) { 
    [0]=> 
    string(5) "[email protected]" 
    [1]=> 
    string(1) "A" 
    [2]=> 
    string(1) "B" 
    [3]=> 
    string(1) "C" 
    [4]=> 
    string(1) "D" 
    [5]=> 
    string(1) "E" 
    } 
    [4]=> 
    array(6) { 
    [0]=> 
    string(5) "[email protected]" 
    [1]=> 
    string(1) "A" 
    [2]=> 
    string(1) "B" 
    [3]=> 
    string(1) "C" 
    [4]=> 
    string(1) "D" 
    [5]=> 
    string(1) "E" 
    } 
    [5]=> 
    array(6) { 
    [0]=> 
    string(5) "[email protected]" 
    [1]=> 
    string(1) "A" 
    [2]=> 
    string(1) "B" 
    [3]=> 
    string(1) "C" 
    [4]=> 
    string(1) "D" 
    [5]=> 
    string(1) "E" 
    } 
} 

ich zählen mag, wie oft jeder Wert an Position [1] jede Anordnung auftritt.

Ich habe viele Dinge ausprobiert, einschließlich array_count_values(), aber dies erlaubt nicht die Option, Vorkommen in nur einer bestimmten Position jedes Arrays zu zählen. Ich bin mir nicht ganz sicher, wie ich dieses Problem angehen soll, weil das Array multidimensional ist und ich mich nie darum kümmern musste, die Werte an einer bestimmten Position zu zählen.

Ich entschuldige mich, wenn die Antwort darauf offensichtlich ist, ich habe an diesem Problem für ein paar Stunden gearbeitet, aber ohne Erfolg, aber ich bin auch ein Anfänger, wenn es um Arrays geht, besonders multidimensional. Alle Ideen sind willkommen :)

Antwort

2

Sie können das Array durchlaufen und die Werte [1] in ein anderes Array einfügen und array_count_values auf das resultierende Array anwenden.

$a = array(); 
foreach ($arr as $ar) { 
    $a[] = $ar[1]; 
} 
print_r(array_count_values($a)); 

Dies wird Ihnen geben:

  • vote1: 1
  • A: 5

Wenn der oben ist, was Sie suchen? Wenn Sie eine kürzere Version wünschen, können Sie auch array_column verwenden.

+0

Vielen Dank! Wäre der Wert von $ arr mein existierendes multidimensionales Array? – pattyd

+0

@pattyd Ja .... –

0

Verwenden Sie array_column ($ array, 1), um Position [1] -Elemente als Array zu erhalten; Verwenden Sie dann Ihre array_count_values ​​(), um sie zu zählen.

<?php 
$array = [[1,2,3],[2,3,4]]; 
var_dump(array_count_values (array_column($array,1)));