我正在尝试删除$inpSentences
指定的给定时间内具有最小值的元素。
$a = array(0 => 2, 1 => 1.5);
$inpSentences
是1
for($i = 0; $i != $inpSentences; i++){
$min = min($a);
$key1 = array_search($min, $a);
unset($a[$key1]);
echo($key1);
}
echo($a);
希望有人能够提供帮助 - 第一次发布到StackOverflow。也是php的新手。 谢谢!
答案 0 :(得分:0)
最简单的方法可能是将数组从最低到最高排序,然后从一开始就切掉$inpSentences
个元素。
使用array_slice()
,从数组的开头删除特定数量的元素。这意味着如果您提供$inpSentences
作为第二个参数(数组$a
是第一个参数),那么将删除多少个元素。为确保始终删除最低值,请先sort()
数组。
$inpSentences = 3; // How many elements you want to remove
sort($a); // Sort the array
$new = array_slice($a, $inpSentences); // Slice off $inpSentences elements from the start
print_r($new); // Prints the resulting array
对于您的示例,$a = array(2, 1.5)
,它看起来像这样
// Input-array
Array (
[0] => 2
[1] => 1.5
)
// Output array
Array (
[0] => 2
)
答案 1 :(得分:-1)
似乎有什么问题?您的代码工作正常,除了您在for循环中忘记了i的增量上的“$”符号。
您可能还想使用print_r($ a)或var_dump($ a)而不是echo来打印数组的值。