players将为空或以逗号分隔的列表(或单个值).检查它是否为空的最简单方法是什么?我假设我可以在将$gameresult数组取入后立即执行此操作$gamerow?在这种情况下,跳过爆炸它可能更有效,$playerlist如果它是空的,但为了参数,我如何检查数组是否也是空的?
$gamerow = mysql_fetch_array($gameresult);
$playerlist = explode(",", $gamerow['players']);
Run Code Online (Sandbox Code Playgroud) 在使用PHP一段时间后,我注意到并非所有PHP内置函数都如预期的那样快.考虑下面两个可能的函数实现,它使用缓存的素数数组来查找数字是否为素数.
//very slow for large $prime_array
$prime_array = array( 2, 3, 5, 7, 11, 13, .... 104729, ... );
$result_array = array();
foreach( $prime_array => $number ) {
$result_array[$number] = in_array( $number, $large_prime_array );
}
//speed is much less dependent on size of $prime_array, and runs much faster.
$prime_array => array( 2 => NULL, 3 => NULL, 5 => NULL, 7 => NULL,
11 => NULL, 13 => NULL, .... 104729 => NULL, ... );
foreach( $prime_array => $number ) …Run Code Online (Sandbox Code Playgroud) 关于' 如何判断PHP数组是否为空 '的这个问题让我想到了这个问题
是否有理由count应该使用而不是empty在确定数组是否为空时?
我个人的想法是,如果2应该使用空数组的情况是等价的,empty因为它给出了布尔问题的布尔答案.从上面链接的问题来看,这似乎count($var) == 0是流行的方法.对我而言,虽然技术上正确,但毫无意义.例如Q:$ var,你是空的吗?答:7.嗯...
有没有理由我应该使用count == 0或仅仅是个人品味的问题?
正如其他人在对现在删除的答案的评论中指出的那样,count对大型数组会有性能影响,因为它必须计算所有元素,而empty一旦知道它不为空就可以停止.那么,如果他们在这种情况下给出相同的结果,但count可能效率低下,为什么我们会使用count($var) == 0?
count()数组函数的Big-O时间复杂度是多少?
例
$x = array(1,2,3);
echo count($x); // how many operation does it takes to count the elements
// of the array? is it 3, or is it 1
Run Code Online (Sandbox Code Playgroud) 正如我的研究让我相信for循环是PHP中最快的迭代构造...为了使它更清晰,你认为下面的哪一个会更快?
for ($i = 0; $i < count($myLargeArray); $i++ ) {
echo myLargeArray[$i];
}
Run Code Online (Sandbox Code Playgroud)
$count = count($myLargeArray);
for ($i = 0; $i < $count; $i++ ) {
echo myLargeArray[$i];
}
Run Code Online (Sandbox Code Playgroud)
我的逻辑是,在每个迭代中,在每个迭代中,在每次迭代中访问myLargeArray的长度比在示例2中访问简单的整数值计算成本更高.那是对的吗?
当 swift 使用String.count它时:
O(n)每次我们调用它时,我们都会遍历整个 String 以对其进行计数
或者
O(1)其中 swift 之前存储了这个数组的大小并简单地访问它。
想象一个简单但大型的数组,键0到100000.
当做这个数组的foreach循环时,是否可以在不执行以下操作的情况下"寻找" :
foreach($array as $key=>$value){
if($key<10000){
continue;
}
}
Run Code Online (Sandbox Code Playgroud)
我们偶尔通过我们的代码库进行这种操作.通过每个键,它会有点浪费滴答声,直到键大于10000.
这可能在PHP 5.4中?
谢谢.