简介:PHP字段的相关操作
索引数组
索引是一个整数,如果没有指定索引值,则默认为零并顺序递增。
//索引数组 $array1 = array('a', 'b', 'c', 'd');
关联数组
数组的键是一个字符串。
//关联数组 $arr2 = array( "a" => 1, "b" => 2, "c" => 3, "d" => 4, );
多维数组
//二维数组 $cars = array ( array("Volvo", 22, 18), array("BMW", 15, 13), array("Saab", 5, 2), array("Land Rover", 17, 15), );
复合场
//二维复合数组 $ret = array( 'id' => 2, 'name' => '算法', 'children' => array( array('id' => 5, 'name' => 'QUERY处理'), array('id' => 6, 'name' => 'URL处理'), array('id' => 7, 'name' => '内容处理'), array('id' => 8, 'name' => '统计计算'), ), );
range 函数创建索引数组
此函数创建一个包含从低到高(含)的整数或字符的字段。 如果 high 小于 low,则返回相反顺序的字段。
range(low,high,step) $array = range(0,5);//0,1,2,3,4,5 $array = range(0,50,10);//0,10,20,30,40,50 $array = range("a","d");//a,b,c,d
for 循环遍历索引数组
$arr = array(1, 2, 3, 4); for ($i = 0; $i < count($arr); $i++) { echo $arr[$i];//1234 };
foreach 循环遍历字段
$arr = array( "a" => 1, "b" => 2, "c" => 3, "d" => 4, ); foreach ($arr as $key => $value) { var_dump($key . '=>' . $value);//a=>1b=>2c=>3d=>4 }
每个函数都会迭代字段
each()函数返回当前元素的键值和键名,并向前连接内部指针,在有四个元素的字段中会返回该元素的键值和键名。 两个元素(1 和 Value)包含通配符,两个元素(0 和 Key)包含键值。 如果内部指针跨越链表范围,函数将返回FALSE。
$sports = array('ball' => 'good', 'swim' => 'well', 'run' => 'bad'); while ($elem = each($sports)) { echo $elem[0] . ': ' . $elem[1];//ball: goodswim:wellrun: bad echo $elem['key'] . ': ' . $elem['value'];//ball: goodswim:wellrun: bad }
list() with every 遍历字段
与 array() 一样,列表实际上并不是一个函数,而是一种语言结构。 list() 在一次操作中形式化一组变量。
$sports = array('ball' => 'good', 'swim' => 'well', 'run' => 'bad'); for (; list($key, $value) = each($sports);) { echo $key . ': ' . $value;//ball: goodswim:wellrun: bad }
作业添加
将 $arr[key] = value 直接分配给数组变量。
$arr['a'] = 1; var_dump($arr);//'a'=>1
添加方括号[]
如果方括号中没有指定索引值,则取当前最大整数索引值,新的键名将是该值加1。如果还没有整数索引,键名将为0。
//关联数组 $arr2 = array( "a" => 1, "b" => 2, "c" => 3, "d" => 4, );
使用 array_push() 函数
array_push() 函数将一个或多个元素添加(堆叠)到第一个参数中字段的末尾,并返回新字段的厚度。 该函数相当于多次调用$array[] = $value。
注意:即使形参中有字符串键值,您添加的元素也始终是数字键。
注意:如果使用 array_push() 删除链表中的一个单元,最好使用 $array[] = ,因为没有调用该函数的额外负担。
注意:如果第一个参数不是链表,则 array_push() 将发出警告。 这与 $var[] 的行为不同,$var[] 创建一个新的链表。
//关联数组 $arr2 = array( "a" => 1, "b" => 2, "c" => 3, "d" => 4, );
使用 array_unshift() 函数在链表开头添加元素
array_unshift() 函数用于向链表中插入新元素。 新链表的值将被插入到链表的开头。 添加的元素是作为一个整体添加的,这些元素在链表中的顺序与参数中的顺序相同。 该函数返回链表中元素的数量。
//关联数组 $arr2 = array( "a" => 1, "b" => 2, "c" => 3, "d" => 4, );
使用 unset() 函数
销毁指定的变量。
该函数允许取消链表中的键值。 需要注意的是,链表不会重建索引。 如果需要重新索引,可以使用 array_values() 函数。
//关联数组 $arr2 = array( "a" => 1, "b" => 2, "c" => 3, "d" => 4, );
使用 array_splice() 函数
array_splice() 函数从链表中删除所选元素并用新元素替换它。 该函数还将返回一个包含已删除元素的链表。
数组 array_splice ( 数组 &$input , int $offset [, int $length [, 数组 $replacement ]] )
array_splice() 删除输入数组中由偏移量和长度指定的单位,如果提供了 replacement 参数,则将其替换为替换数组中的单位。 返回包含已删除单元格的链接列表。 请注意,输入中的数字键不会被保留。 如果 offset 为正,则删除从输入数组中该值指定的偏移量开始。 如果偏移量为负php数组倒序,则从输入末尾向下计数的该值指定的偏移量处开始移除。
//关联数组 $arr2 = array( "a" => 1, "b" => 2, "c" => 3, "d" => 4, );
如果省略 length,则删除链表中从 offset 到末尾的所有部分。 如果指定长度且为正数,则删除这么多单元格。 如果指定了length且为负值,则删除从链表尾部offset到倒计时长度之间的所有元素。 提示:当您想要在给出替换时删除从偏移量到列表末尾的所有元素时,请使用 count($input) 作为长度。
//关联数组 $arr2 = array( "a" => 1, "b" => 2, "c" => 3, "d" => 4, );
如果给出了替换数组,则删除的单元格将替换为该字段中的单元格。 如果 offset 和 length 的组合导致没有值被删除,则替换数组中的元素将被插入到 offset 指定的位置。
//关联数组 $arr2 = array( "a" => 1, "b" => 2, "c" => 3, "d" => 4, );
array_pop() 删除链表的最后一个元素
返回链表的最后一个值。 如果链表为空,或者没有链接,则返回NULL。
//关联数组 $arr2 = array( "a" => 1, "b" => 2, "c" => 3, "d" => 4, );
array_shift() 删除链表的第一个元素
array_shift() 函数删除链表中的第一个元素并返回被删除元素的值。
//关联数组 $arr2 = array( "a" => 1, "b" => 2, "c" => 3, "d" => 4, );
如果键是数字,则所有元素都会获得一个新键php数组倒序,从 0 开始并以 1 递增。
//关联数组 $arr2 = array( "a" => 1, "b" => 2, "c" => 3, "d" => 4, );
使用键值来改变
//二维数组 $cars = array ( array("Volvo", 22, 18), array("BMW", 15, 13), array("Saab", 5, 2), array("Land Rover", 17, 15), );
sort()函数对链表进行升序排序
按字母顺序逆序对链表的元素进行排序
//二维数组 $cars = array ( array("Volvo", 22, 18), array("BMW", 15, 13), array("Saab", 5, 2), array("Land Rover", 17, 15), );
按字母顺序逆序对链表的元素进行排序
//二维数组 $cars = array ( array("Volvo", 22, 18), array("BMW", 15, 13), array("Saab", 5, 2), array("Land Rover", 17, 15), );
rsort()函数对链表进行降序排序
//二维数组 $cars = array ( array("Volvo", 22, 18), array("BMW", 15, 13), array("Saab", 5, 2), array("Land Rover", 17, 15), );
asort() 函数按值对链表进行排序
//二维数组 $cars = array ( array("Volvo", 22, 18), array("BMW", 15, 13), array("Saab", 5, 2), array("Land Rover", 17, 15), );
ksort()函数对链表按键进行排序
//二维数组 $cars = array ( array("Volvo", 22, 18), array("BMW", 15, 13), array("Saab", 5, 2), array("Land Rover", 17, 15), );
arsort() 函数对值进行逆序排序
//二维数组 $cars = array ( array("Volvo", 22, 18), array("BMW", 15, 13), array("Saab", 5, 2), array("Land Rover", 17, 15), );
krsort() 函数以相反的顺序对键进行排序
//二维数组 $cars = array ( array("Volvo", 22, 18), array("BMW", 15, 13), array("Saab", 5, 2), array("Land Rover", 17, 15), );
array_multisort() 函数对多维链表进行排序
array_multisort() 可用于一次对多个字段进行排序,也可用于按某个维度或多个维度对多维字段进行排序。 参数中的字段被视为表的列并按行排序,类似于SQL的ORDER BY子句的功能。 第一个字段是排序的主要字段。 数组中比较相等的行(值)按下一个输入字段中相应值的大小排序,依此类推。
//二维数组 $cars = array ( array("Volvo", 22, 18), array("BMW", 15, 13), array("Saab", 5, 2), array("Land Rover", 17, 15), );
array_keys()函数获取链表key集合
array_keys() 函数返回一个新的链表,其中包含字段中的所有键。
//二维数组 $cars = array ( array("Volvo", 22, 18), array("BMW", 15, 13), array("Saab", 5, 2), array("Land Rover", 17, 15), );
array_values() 获取链表值的集合
array_values() 函数返回一个包含给定链表中所有通配符的字段,但不保留键值。
//二维复合数组 $ret = array( 'id' => 2, 'name' => '算法', 'children' => array( array('id' => 5, 'name' => 'QUERY处理'), array('id' => 6, 'name' => 'URL处理'), array('id' => 7, 'name' => '内容处理'), array('id' => 8, 'name' => '统计计算'), ), );
array_unique() 函数删除重复元素
array_unique() 函数删除链表中的重复值并返回结果字段。 当几个数组元素的值相等时,只保留第一个元素,其他元素被删除。 返回字段中的键值不变。
//二维复合数组 $ret = array( 'id' => 2, 'name' => '算法', 'children' => array( array('id' => 5, 'name' => 'QUERY处理'), array('id' => 6, 'name' => 'URL处理'), array('id' => 7, 'name' => '内容处理'), array('id' => 8, 'name' => '统计计算'), ), );
array_merge() 合并字段
array_merge() 将一个或多个字段的元素合并在一起,将链表中的值添加到前一个字段的前面。 返回作为结果的字段。 如果输入的字段具有相同的字符串键值,则该键旁边的值将覆盖先前的值。 但是,如果链表包含数字键值,则后面的值不会覆盖原始值,而是会追加到其后面。 如果仅给出一个链表并且对该字段进行数字索引,则键将以连续形式重新索引。
//二维复合数组 $ret = array( 'id' => 2, 'name' => '算法', 'children' => array( array('id' => 5, 'name' => 'QUERY处理'), array('id' => 6, 'name' => 'URL处理'), array('id' => 7, 'name' => '内容处理'), array('id' => 8, 'name' => '统计计算'), ), );
array_slice() 截取字段片段
开始,起始位置。 0 = 第一个元素。
保留,可选。 指定函数是保留密钥还是重置密钥。 真假
array_slice(数组、开始、长度、保留)
//二维复合数组 $ret = array( 'id' => 2, 'name' => '算法', 'children' => array( array('id' => 5, 'name' => 'QUERY处理'), array('id' => 6, 'name' => 'URL处理'), array('id' => 7, 'name' => '内容处理'), array('id' => 8, 'name' => '统计计算'), ), );
未完成,待补充...
以上就是小编给大家介绍的《PHP数组的相关操作》。 希望对您有所帮助。 如果您有疑问,请给我留言,编辑会及时回复您。 非常感谢您对马农网的支持!
发表评论