我有一个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个键和值对?
如果我需要更清楚地了解我的解释,请告诉我。 :)
答案 0 :(得分:1)
您需要使用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;
}
当您不使用true
时,请务必使用array_keys
:
$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
答案 1 :(得分:0)
尝试这样的事情......
$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;
}
}