PHP中数据类型array和object有什么区别?
您可以参考php帮助手册来了解具体的概念差异。我说一下我个人的理解:一般来说,数组是数组,对象是对象。两者有很大的区别。主要区别是我认为对象一般定义行为进行封装,而数组主要定义数据结构。但是两者的区别在php语言中是模糊的,因为php支持普通的数据类型,所以array可以是object,反之亦然。
PHP如何实现删除数组元素和重新索引?
如果要删除数组中的元素,可以直接使用unset。
lt?php$arr数组(a,b,c,d)unset($arr[1])print_r($arr)?gtprint_r($arr)
之后的结果不是这样的,最后的结果是Array([0]gta[2]gtc[3]gtd)。
那么,我们如何确保缺失的元素将被填充,数组将被重新索引呢?答案是
array_splic:
lt?php$arrarray(a,b,c,d)array_splice($arr,1,1)print_r($arr)?大型旅行车的
print_r($arr)后,结果是A()rray([0]gta[1]gtc[2]gtd)。
删除数组中的指定元素
Array_search()比较实用。
array_search()函数在数组中查找键值,就像in_array()一样。如果找到这个值,将返回匹配元素的键名。如果没有找到,返回false$arrayarray(1,2,3,4,5)$del_value3unset($array[array_search($del_value,$array)]//使用unset删除这个元素print_r($array)并输出array(1,2,4,5)。
但是如果要重新索引数组,就需要用foreach遍历被删除的数组,然后重新构建一个数组,也是可以的。
_shift函数:将数组的第一个单元格移出并返回结果,数组长度减一,其他单元格前移一位。所有数字键将从零开始计数,而文字键名称不会改变。
_splice函数:将数组中选中的元素移出,不保留原来的键名。