1.作为数组使用: 索引数组
定义: $arr = ['foo1', 'foo2', 'foo3']
追加元素: $arr[] = 'foo4'
删除元素: unset($arr[1])
遍历数据 : for($i=0, $len = count($arr); $i<$len; $i++){}
或 forearch($arr as $val) {}
2.作为map使用: 关联数组
定义: $arr= ['key1' => 'val1', 'key2' => ]
追加元素: $arr['key3'] = 'val3'
删除元素: unset($arr[key1])
遍历数组: forearch($arr as $key => $val) {}
3.作为set使用: 作为集合使用
定义: $arr = ['foo1', 'foo2', 'foo3']
添加元素: $arr[] = 'foo4'
移除元素: unset($arr[array_search['foo1', $arr]]) 或 $arr = array_diff($arr, ['foo4'])
判断元素在集合中: in_array('foo4', $arr)
取差集: $arr_new = array_diff($arr1, $arr2)
取并集: $arr_new = array_merge($arr1, $arr2)
取交集: $arr_new = array_intersect($arr1, $arr2)
4.作为list使用
头进: array_unshift($arr, $val)
头出: array_shift($arr, $val)
尾进: array_push($arr, $val)
尾出: array_pop($arr)
结尾:
以上只是最简单的使用场景, 更多的时候一个php数组是多种数据结构的混合应用, 这样可以更好的将注意力集中在功能的实现,而非对数据结构本身的选择和设计.