2017-02-21 20 views
-1

入力配列PHP - ソート配列値がアルファベット順とエコー出力ストリングここ

$userArr = array("0"=>"Veronica", "1"=>"Alex", "2"=>"Joe", "3"=>"Alex", "4"=>"Veronica"); 

逆、ユーザVeronicaAlexが二回繰り返されます。 2人のユーザーの数が同じであっても、つまりVeronica => 2, Alex => 2の場合でも、上記の配列をアルファベット順にソートするには、出力文字列としてVeronicaのみが表示されます。

$userArr = array("0"=>"Veronica", "1"=>"Alex", "2"=>"Joe", "3"=>"Alex", "4"=>"Veronica"); 
$userCnt = array_count_values($userArr); 
foreach ($userCnt as $key => $val) { 
    echo "$key = $val\n"; 
} 

出力:

Veronica 
+0

ないが、オプションの多くは、今があります。 – AbraCadaver

+0

あなたは何をあきらめましたか? – AbraCadaver

答えて

0

ご入力配列:配列の

$userArr = array("0"=>"Veronica", "1"=>"Alex", "2"=>"Joe", "3"=>"Alex", "4"=>"Veronica"); 

数:

echo count($userArr); 

配列のリバース:

arsort($userArr); 
print_r($userArr); 
0

このお試しください:UPDATE

$userArr = array(
     "0"=>"Veronica", 
     "1"=>"Alex", 
     "2"=>"Joe", 
     "3"=>"Alex", 
     "4"=>"Veronica"); 

//below line will first create an associative array with 
//values as keys and their count as the value... 
$arrayVals = array_count_values($userArr); 

//next we sort this array in reverse alphabetically... 
krsort($arrayVals); 

//finally, print it :) 
print_r($arrayVals); 

//will print... 
Array 
(
    [Veronica] => 2 
    [Joe] => 1 
    [Alex] => 2 
) 

を:OPの説明に基づいて、私は彼が "最後" のアルファベットの単語の値を望んでいると思います配列内にあります。その場合は、次のコードは、トリックを行う必要があります:あなたのアプローチを使用して

$userArr = array("0"=>"Veronica", "1"=>"Alex", "2"=>"Joe", "3"=>"Alex", "4"=>"Veronica"); 
rsort($userArr); 
echo current($userArr); 
+0

'Veronica'のみを出力文字列として表示する必要があります。 – Slimshadddyyy

+0

次に、最初の項目をエコーし​​ます。echo $ arrayVals [0]; – TommyBs

+0

'Xavier'をリストに追加すると、最初に1つだけありますが、それでも 'Veronica'でなければなりません。 – AbraCadaver

0

を、私はあなたにもアルファベット順の最後で最高のカウントを持つものをしたいと仮定しています:

$userArr = array("0"=>"Veronica", "1"=>"Alex", "2"=>"Joe", "3"=>"Alex", "4"=>"Veronica"); 
$userCnt = array_count_values($userArr); 

ksort($userCnt); 

$count = 0; 
foreach ($userCnt as $key => $val) { 
    if($val >= $count) { 
     $result = $key; 
     $count = $val; 
    } 
} 
echo "$result appeared $count times"; 
  • 値にキー(名前)によって
  • ソート
  • ループをカウントし、カウント($valが)最後の1
  • 以上であるかどうかを確認

あなたの新しいコメントではさらに簡単なようです。ソート元とソート順に応じて、最初または最後のいずれかをつかむ:あなたが何らかの理由でarray_count_values()が必要な場合は

rsort($userArr); 
echo current($userArr); 
//or 
sort($userArr); 
echo end($userArr); 

:私は理解してまだ

$userCnt = array_count_values($userArr); 
krsort($userCnt); 
echo key($userCnt); 
関連する問題