PHP数组中元素的引用

PHP数组中元素的引用,php,arrays,Php,Arrays,答案不是$array[0] 我的数组设置如下 $array = array(); $array[7] = 37; $array[19] = 98; $array[42] = 22; $array[68] = 14; 我正在对数组进行排序,并尝试在排序后获得尽可能高的匹配。在这个例子中,$array[19]=98; 我只需要返回值98,它将始终位于数组的第一个位置。我无法使用$array[0]进行引用,因为0键不存在。速度限制意味着我无法在数组中循环找到最高匹配 还必须有一个比这更好的解决方案

答案不是$array[0]

我的数组设置如下

$array = array();
$array[7] =  37;
$array[19] = 98;
$array[42] = 22;
$array[68] = 14;
我正在对数组进行排序,并尝试在排序后获得尽可能高的匹配。在这个例子中,$array[19]=98; 我只需要返回值98,它将始终位于数组的第一个位置。我无法使用$array[0]进行引用,因为0键不存在。速度限制意味着我无法在数组中循环找到最高匹配

还必须有一个比这更好的解决方案

foreach ( $array as $value )
{
    echo $value;
    break;
}

如果要对其进行排序,可以指定自己的排序例程,并让它在排序时选择最高值。

您可以随时这样做

$array = array_values($array);
现在,$array[0]将是正确的答案

$keys = array_keys($array);
echo $array[$keys[0]];
或者您可以使用以下功能:

reset($array);
$value = current($array);

如果我正确理解了您的问题,您需要数组中的第一个键:

$firstValue = reset($array);
$firstKey = key($array);

如果希望使用第一个元素,则不会循环任何内容,只返回值


但是,在您的示例中,它不是第一个元素,因此您的示例/问题中似乎存在差异,或者我对其的理解存在错误。

实际排序是通过系统的另一部分进行的。实际上是一个我无法控制的黑盒。不过,您可能需要在current()之前对数组调用reset(),以确保您位于第一个元素。谢谢。电流工作得很好。还有其他约束阻止我复制数组甚至索引。在这种情况下,速度也是一个很大的问题。array_shift()比current()好,因为它不依赖于内部数组指针。如果使用next($arr)和current($arr),它将返回不同的值。尽管情况并非如此,但它不如总是返回第一个元素的array_shift()优雅。array_shift会缩短数组。在本例中,我只需要在系统的另一部分进一步处理数组之前处理该值。
$array = array_values($array);
echo $array[0];