2011-08-08 7 views
0

mysqlデータベースにポーリング結果が格納されています。
私は結果がうまくいくように出力しようとしていますが、結果は降順(最高のものから順番に)と正しい名前で取得しようとしています。出力は次のようになります。別の配列に一致する配列キー(foreachループ)を置き換えます。

print "<pre>"; 
print_r(array_count_values($array_a)); 
print "</pre>"; 

//OUTPUTS first key is the poll option and second is how much it was voted for. 
[4] => 1 
[12] => 17 
[2] => 3 
[6] => 42 
[8] => 6 
[16] => 5 
[3] => 30 
[18] => 1 
[1] => 5 

まず、数字を名前に置き換えたいと思います。これは私が立ち往生したところです。 str_replaceは、正確な番号ではないが一致するすべての数字を置き換えるため、機能しません。 foreachループは正しいが、置換されるべき17の数字があるので、配列を使ってそれらを取得するのは好きだが、方法はわからない。

foreach($array_a as &$value){ 
    if($value==1){ 
     $value = "opt1"; 
    } 
} 

$patterns = array(); 
$patterns[0] = '1'; 
$patterns[1] = '2'; 
$patterns[2] = '3'; 
$patterns[3] = '4'; 

$replacements = array(); 
$replacements[0] = 'Car'; 
$replacements[1] = 'Boat'; 
$replacements[2] = 'Bike'; 
$replacements[3] = 'Photo'; 

私が好きな結果が達成するために:

//OUTPUT 
[Car] => 30 
[Bike] => 25 
[Paint] => 10 
[Goat] => 5 
[Photo] => 3 
+0

達成したい結果はありますか?目的のアレイを表示します。 –

+0

私は元の投稿にそれを追加しました – Rob

+0

[asort](http://www.php.net/manual/en/function.asort.php)を使用してみてください。 – linuxeasy

答えて

0

方法について:

$replacements = array(); 
$replacements[2] = 'Car'; // your key should be the key of $array_a here and 
$replacements[1] = 'Boat'; // value should be the key you want to be used 
$replacements[5] = 'Bike'; 
$replacements[3] = 'Photo'; 


$finalPollArray = array(); 

foreach($replacements as $key => $value) 
{ 
    $finalPollArray[$value] = $array_a[$key]; 
} 

$finalPollArray = asort($finalPollArray) 

print "<pre>"; 
print_r($finalPollArray); 
print "</pre>"; 

は非常に実用的な例は次のようになります。

$poll[5] = 13; 
$poll[6] = 12; 
$poll[3] = 10; 
$poll[12] = 7; 
$poll[8] = 6; 
$poll[1] = 5; 
$poll[7] = 5; 
$poll[16] = 5; 
$poll[13] = 4; 

// with this code I get the following output 
$replacements = array(); 
$replacements[5] = 'Car'; 

$finalPollArrayA = array(); 

foreach($replacements as $key => $value) 
{ 
    $finalPollArrayA[$value] = $poll[$key]; 
} 

print "<pre>"; 
print_r($finalPollArrayA); 
print "</pre>"; 

と出力されます:

Array 
(
    [Car] => 13 
) 

期待どおりですか?

+0

私は 'opt'と思っています($ key + 1)、Rob必要0 => 1,1 => 2、等 – J0HN

+0

おかげで、私はちょうどasort関数を逃した、これは今期待どおりに出力する必要があります! – linuxeasy

+0

これはうまくいくはずですが、 'opt'の名前は投票で尋ねるもののトークン名であることを忘れてしまいました。元の投稿を更新しました。 – Rob

関連する問題