2015-04-06 50 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,因为你可以有一个以上的最大值。

相关问题