作者:琉忆 阅读 148 次

以下关于PHP数组的说法中,不正确的是( )。

以下关于PHP数组的说法中,不正确的是(    )

A.处理PHP数组,foreach的效率要比for高很多,是因为foreach走的是链表的遍历

BPHP数组底层采用的是循环链表,正向、反向遍历数组都很方便

C.无论是 array(1, 2, 3),还是array(1 => 2, 2=>4)等,本质上都是hash_table

DPHP数组插入和删除操作的时间复杂度都是O(1)

参考答案:B

分析:对于选项A,使用for循环的时候,需要提前使用count($arr)计算数组长度,而且还需要引入自增变量$i,每次循环的时候都需要判断数组是否已经遍历完成$i<count($arr),每次循环后还需要执行自增$i++,最后在输出数组元素时,使用$arr[$i]也需要进行哈希操作。而foreach则不同,它使用指针的方式遍历,每次循环后指针会指向下一个元素,少了计算数组长度、变量自增和哈希运算,因此效率会比for高。所以选项A是正确的。

对于选项B,数组底层采用双向链表(循环链表无法实现反向遍历)。所以,选项B错误。

对于选项C,数组是以键值对存储的,因此本质上就是hash_table

对于选项D,由于数组本质上是hash_table,因此插入和删除操作的时间复杂度都是O(1)


关注我们,获取更多面试资料
公众号:琉忆编程库
小程序:琉忆编程库
微博:琉忆
QQ邮箱:330168885
QQ:330168885
琉忆寄语
你好,是我琉忆。很荣幸你能浏览我的文章,希望我的文章都能帮助到你。我的新书《PHP面试笔试宝典》已经上线,希望可以多多支持。另外想和我交朋友或交流开发技巧、编程学习都随时欢迎。具体联系方式有:公众号留言(琉忆编程库),邮箱:330168885@qq.com。
赞赏一番
琉忆微信收款
琉忆支付宝收款