我们如何计算aaray结束的位置?

时间:2010-04-24 10:31:20

标签: php arrays

我有这样的数组结果, 例1:

Array ( [0] =>15 [1] => 16 [2] => 17 [3] => 18 )

示例2:

数组([0] => 15 [1] => 16 [2] => 17 [3] => 18 [4] => 18)

第一个数组在数组[3]结束 第二个数组在数组[4]结束 如何计算数组的结束位置 有没有任何函数来计算这个

6 个答案:

答案 0 :(得分:5)

(直接从http://www.php.net/manual/en/function.count.php复制)

取决于“结束”是什么意思,

<?php
$yourArray = array(1=>'a', 7=>'b', 5=>'c');

print count($yourArray); // prints 3

end($yourArray);
print key($yourArray); // prints 5

print max(array_keys($yourArray)); // prints 7
?> 

对于普通数组,只需使用count($a) - 1

答案 1 :(得分:2)

使用计数功能:

count(myArray)

这将告诉您阵列中有多少元素。

http://www.w3schools.com/php/func_array_count.asp

答案 2 :(得分:2)

我认为你要做的是计算数组中元素的数量?

如果是这样,这将是计数功能。 http://php.net/manual/en/function.count.php

答案 3 :(得分:2)

关联数组/数组与漏洞无关:

$lastElement = end($array);
$lastKey     = key($array); // only after end(); has set the internal array pointer!

答案 4 :(得分:2)

如果您只需要数组的最后一个值,则可以使用array_pop

$arr = array('a','b','c');
echo array_pop($arr); //get 'c'

为了好玩:

$a = range(1, 100000);
shuffle($a);
$ts = microtime(true);
echo end($a),"\n";
printf("End =%.6f\n", microtime(true) - $ts);


//$b = range(1, 100000)
//shuffle($b);
reset($a);
$ts = microtime(true);
echo array_pop($a),"\n";
printf("Array_Pop=%.6f\n", microtime(true) - $ts);

结果是:

68875
End=0.000289
68875
Array_Pop=0.000053

答案 5 :(得分:1)

如果它只是一个普通的数字索引数组,那么你可以使用count(),它可以为你提供数组中元素的数量。由于数组默认情况下从零开始,因此您需要减去一个以获取最终元素的索引:

$array = array(0 => 15, 1 => 16, 2 => 17, 3 => 18);
$index = count($array) - 1;
echo $array[$index];