是否可以将String与数字一起存储在数组中?
例如:
array("bob" => 2,
"billy" => 5);
这是我的数组,每当添加新的bob或billy时,它们的数字就会增加1。然后我也想得到一个数最高的元素,所以在这种情况下——比利,因为他被加了5次。
我如何在PHP中做到这一点?
$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];
使用arsort。arsort()函数根据值按降序对关联数组进行排序。
$data=array("bob"=>"2","billy"=>"5");
arsort($data);
foreach($data as $x=>$x_value)
{
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
输出:
Key=billy, Value=5
Key=bob, Value=2
$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是一个具有最大索引的数组,它可能包含多个element,因为您可以有多个最大值。