2015-04-06 49 views
-2

是否可以將數組中的字符串與數字一起存儲?PHP:將字符串存儲在數組中以及添加了多少次?

例如:

array("bob" => 2, 
    "billy" => 5); 

這是我的數組,每當新的鮑勃或比利被添加 - 其數量上升1。然後我也想獲得擁有數量最多的元素,所以在這案件 - 比利,因爲他加了5次。

我該如何在PHP中做到這一點?

+0

*我該如何在PHP中做這件事?*我想試試看! – Rizier123 2015-04-06 12:21:37

+0

時間閱讀PHP文檔.. :)閱讀PHP數組基本文檔和數組排序.. – Svetoslav 2015-04-06 12:23:40

回答

3
$counters = [ 
    "bob" => 2, 
    "billy" => 5 
]; 

function addNew($newWhat, &$counters) { 
    $newWhat = strtolower($newWhat); 
    if (isset($counters[$newWhat])) { 
     $counters[$newWhat]++; 
    } else { 
     $counters[$newWhat] = 1; 
    } 
} 

addNew('Bob', $counters); 
addNew('Billy', $counters); 
addNew('Bob', $counters); 
addNew('Rita', $counters); 

var_dump($counters); 

然後

arsort($counters); 
echo array_keys($counters)[0]; 
1

使用arsort.The arsort()函數降序排序的關聯數組,根據該值。

$data=array("bob"=>"2","billy"=>"5"); 
arsort($data); 
foreach($data as $x=>$x_value) 
{ 
echo "Key=" . $x . ", Value=" . $x_value; 
echo "<br>"; 
} 

OUTPUT:

​​
+0

@arleitiss可能是這個應該爲你工作:) – Priyank 2015-04-06 12:36:47

1
$array = array(
    'bob' => 2, 
    'billy' => 5 
); 

function add_value($array, $index) 
{ 
    if (isset($array[$index])) 
     $array[$index] += 1; 
    else 
     $array[$index] = 1; 
    return $array; 
} 

$array = add_value($array, 'bob'); 
$array = add_value($array, 'bob'); 
$array = add_value($array, 'bob'); 
$array = add_value($array, 'bob'); 

$max_indexes = array_keys($array, max($array)); 

注意$ max_indexes是最大指數(ES)的陣列,它可以包含多個elemenent,因爲你可以有一個以上的最大值。

相關問題