繁体   English   中英

返回关联 PHP 数组的前 n 个值?

[英]Return first n values of associative PHP array?

我有一个 PHP 数组,排序后看起来像:

Array ( [542] => 30 [588] => 29.77 [409] => 19.9 [237] => 19.47 [457] => 17.73 [410] => 15.86);

实际的数组很长。 最初,键是按顺序设置的,如 0、1、2……然后我对数组进行了排序,现在数组看起来像上面的数组。 当我尝试使用 echo $engagement[0]打印此排序数组的第一个元素时,我没有得到值 30。要获得 30,我必须使用$engagement[542] 但我无法知道这个排序数组中的第一个键可能是什么。 如何打印此排序数组的前 n 个键和值对?

让我知道我是否需要更清楚地解释我的解释。:)

您需要使用array_slice()以固定的长度对数组进行切片,然后使用array_keys

$length = 50;
$start = 0;
$new_arr = array_slice($engagement, $start, $length);
$keys = array_keys($new_arr);
foreach($keys as $key){
    echo $new_arr[$keys[$key]];
}

没有array_keys

foreach($new_arr as $key => $value){
    echo $key." => ".$value;
}

请记住,当您不使用array_keys时,请使用true

$new_arr = array_slice($engagement, $start, $length, true);

有关更多信息: array_slice

如果不使用true,则将重置切片数组索引,并且丢失密钥。

更新:

当您只要求数组键时,默认情况下,array_slice重置数组键,如果要保留,则需要使用true作为array_slice的第四个参数。

$new_arr = array_slice($engagement, $start, $length, true);
$keys = array_keys($new_arr); // here is the list of the keys

尝试这样的事情...

$test = array('29.58', '21.78', '56.258', '10.145', '98.23', '20', '78.32', '112', '5.64', '55.26');
asort($test);

$count = 0;
foreach($test as $key => $val)
{
    if($count <=5)
    {
        echo " [".$key."] => ".$val."\t";
        $count+=1;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM