我有一个 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()
for 以固定长度对数组进行切片,然后使用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;
}
true
不使用的时候记得使用array_keys
like:
$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