⑴ php如何从数组中删除一个元素
如果要在某个数组中删除一个元素,可以直接用的unset,例子代码:
<?php
$arr
=
array('a','b','c','d');
print_r($arr);
unset($arr[1]);
print_r($arr);
?>
以上代码输出的结果如下:
E:\TEMP\文件\exp>a.phpArray(
[0]
=>
a
[1]
=>
b
[2]
=>
c
[3]
=>
d)Array(
[0]
=>
a
[2]
=>
c
[3]
=>
d)
⑵ php中删除数组中的某一些元素
array_splice函数可以删除数组中的元素(只是该函数的功能之一),array_splice用法如下:
array_splice
—
把数组中的一部分去掉并用其它值取代
array array_splice( array &$input, int $offset[, int $length = 0 [, mixed $replacement ]] )把
input
数组中由offset
和
length指定的单元去掉,如果提供了
replacement
参数,则用其中的单元取代。
input:输入的数组。
offset:如果
offset
为正,则从
input数组中该值指定的偏移量开始移除。如果
offset为负,则从
input
末尾倒数该值指定的偏移量开始移除。
length:如果省略
length,则移除数组中从offset到结尾的所有部分。
如果指定了
length并且为正值,则移除这么多单元。
如果指定了
length并且为负值,则移除从
offset
到数组末尾倒数length
为止中间所有的单元。
小窍门:当给出了replacement
时要移除从
offset到数组末尾所有单元时,用count($input)
作为
length。
replacement:如果给出了
replacement
数组,则被移除的单元被此数组中的单元替代。
示例,删除数组$inputArr的第5~10个元素(从0开始数,包括第5个和第10个,共6个元素)
array_splice($inputArr,5,6);
⑶ PHP面试题2--常用的数组函数
一,数组操作的基本函数
1. 数组的键名与值
array_values($arr); 获得数组的值
array_keys($arr); 获得数组的键名
array_flip($arr); 数组的值与键名互换(如果有重复前面的会被后面的覆盖)
in_array("apple",$arr); 在数组中检索apple
array_search("apple",$arr); 在数组中检索apple,如果存在返回键名
array_key_exists("apple",$arr); 检索给定的键名是否存在数组中
isset($arr["apple"]); 检索给定的键名是否存在数组中
array_unique() 删除数组中的重复值
2. 数组的内部指针
current($arr); 返回数组中的当前单元
pos($arr); 返回数组中的当前单元
key($arr); 返回数组中的当前单元的键名
prev($arr); 将数组中的内部指针倒回一位
next($arr); 将数组中的内部指针向前移动一位
end($arr); 将数组中的内部指针指向最后一单元
reset($arr); 将数组中的内部指针指向第一单元
each($arr); 将返回数组当前元素的一个键/值的构造数组,并使数组指针向前移动一位
list($key,$value) = each($arr); 获得数组当前元素的键名和值
3. 数组和变量之间的转换
extract(array,extract_rules,prefix); 函数从数组中将变量导入到当前符号表。该函数使用数组键名作为变量名,使用数组键值作为变量值。针对数组中的每个元素,将在当前符号表中创建对应的一个变量。
compact(var1,var2...); 创建一个包含变量名和它们的值的数组。任何没有变量名与之对应的字符串都被略过。
二,数组的分段和填充
1. 数组的分段
array_slice(array,start,length,preserve); 返回数组中的选定部分。如果数组中有字符串键名,返回的数组将保留键名。
array_splice(array1,start,length,array2); 从数组中移除选定的元素,并用新元素取代它。函数返回被移除元素的数组,如果函数没有移除任何元素(length=0),则替代数组将从start参数的位置插入。不保留替代数组的键名。
2. 数组的分割
array_chunk(array,size,preserve_keys); 把一个数组分割为新的数组块。
3. 数组的填充
array_pad(array,size,value); 将指定数量的带有指定值的元素插入到数组。如果将size参数设置为负数,该函数会在原始数组之前插入新的元素。如果size参数小于原始数组的长度,该函数不会删除任何元素。
三,数组与栈
array_push(array,value1,value2...); 向数组尾部插入一个或多个元素。即使数组有字符串键名,添加的元素将是数字键名。
array_pop(array); 删除数组的最后一个元素。返回值是数组的最后一个值,即,被删除的元素值。如果数组为空,或者不是一个数组,将返回NULL。
四,数组和队列
array_shift(array); 用于删除数组中的第一个元素,并返回被删除的元素。如果键名是数字,所有的元素都将获得新的键名,从0开始,并以1递增。
array_unshift(array,value1,value2,value3...); 用于向数组插入新元素,新数组的值将被插入到数组的开头。数值键名将从0开始,以1递增。字符串键名将保持不变。
五,回调函数
array_walk(array,myfunction,parameter...); 将数组中的每个元素应用到 用户自定义函数。在函数中,数组的键名和键值是参数。可以通过把用户自定义函数的第一个参数指定为引用:&$value,来改变数组元素的值。
array_map(myfunction,array1,array2,array3...); 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新的值的数组。myfunction可以为null
array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] ); 用回调函数过滤数组中的元素。该函数把输入数组中的每个键值传给回调函数。如果回调函数返回true,则把输入数组中的当前键值返回给结果数组,数组键名保持不变。
array_rece(array,myfunction,initial); 函数发送数组中的值到用户自定义函数,并返回一个字符串。如果数组是空的或者初始值未传递,该函数返回null。initial为可选,规定发送到函数处理的第一个值。
六,数组的计算
1. 数组元素的求和
array_sum(array); 返回数组中的所有值的和
2. 数组的合并
array_merge(array1,array2,array3...); 用于把一个或多个数组合并成一个数组。如果两个或更多个数组有相同的键名。则最后的数组会覆盖其他数组。如果向函数输入了一个数组,且键名是整数,则该函数会返回带有整数键名的新数组,其键名以0开始进行重新索引。
array_merge_recursive(array1,array2,array3...); 用于把一个或多个数组合并为一个数组,该函数与array_merge()函数之间的不同是在处理两个或多个数组元素有相同的键名的情况下,array_merge_recursive()不会进行键名覆盖,而是将多个相同键名的值递归组成一个数组。如果您仅仅向 array_merge_recursive() 函数输入一个数组,结果与 array_merge() 相同。
3. 数组的差集
array_diff(array1,array2,array3...); 函数用于比较两个(或更多个)数组的值,并返回差集。该函数比较两个(或更多个)数组的值(key=>value中的value),并返回一个差集数组,该数组包括了所有在被比较的数组(array1)中,但是不在任何其他参数数组(array2或array3等等)中的值。
array_diff_assoc(array1,array2,array3...); 函数用于比较两个(或更多个)数组的键名和键值,并返回差集。该函数比较两个(或更多个)数组的键名和键值,并返回一个差集数组,该数组包括了所有在被比较的数组(array1)中,但是不在任何其他参数数组(array2 或 array3 等等)中的键名和键值。
4. 数组的并集
array_intersect(array1,array2,array3...); 函数用于比较两个(或更多个)数组的键值,并返回交集。该函数比较两个(或更多个)数组的键值,返回一个交集数组,该数组包括了所有在被比较的数组(array1)中,同时也在任何其他参数数组(array2 或 array3 等等)中的键值。
array_intersect_assoc(array1,array2,array3...); 函数用于比较两个(或更多个)数组的键名和键值,并返回交集。该函数比较两个(或更多个)数组的键名和键值,并返回一个交集数组,该数组包括了所有在被比较的数组(array1)中,同时也在任何其他参数数组(array2 或 array3 等等)中的键名和键值。
七,数值的排序
array_multisort(): 对多个数组或多维数组进行排序
sort(): 以升序对数组排序
rsort(): 以降序对数组排序
asort(): 根据值,以升序对关联数组进行排序
ksort(): 根据键,以升序对关联数组进行排序
arsort(): 根据值,以降序对关联数组进行排序
krsort(): 根据键,以降序对关联数组进行排序
资料参考:
https://www.php.cn/php-weizijiaocheng-381347.html
https://www.runoob.com/php/php-ref-array.html
⑷ PHP代码实现:1)删除整个数组2)删除数组中指定的元素3)删除重复的元素
$arr = array(1,2,4,2,0,9,8,5);//定义一个数组。
$arr1 = $arr; //定义另一个数组和上一个数组一样。
//循环第一个数组让后循环第二个数组 用第一个数组的每个值和第二个数组比较如果相同就删除,最后输出第二个数组就行了。
for($i = 0;$i<count($arr);$i++){
for($j=$i+1;$j<count($arr);$j++){
if($arr[$i] == $arr[$j])
unset($arr1[$i]);
}
}
echo'<pre>';
print_r($arr1);
第二 如果允许使用array_uniqe()函数的话,直接array_uniqe(直接写数组名就ok)。
在PHP中可以使用内置函数array_unique()来直接删除重复元素,也可以使用array_flip()函数来间接删除重复元素。
1.array_unique()函数
array_unique()函数可以移除数组中的重复的值,并返回结果数组;当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除。
代码示例:
<?php$result1 = array("a" => "green", "red", "b" => "green", "blue",
"red");var_mp($result1);$result2 = array_unique($result1);var_mp($result2);?>
2.array_flip()函数
array_flip()是反转数组键和值的函数,它有个特性就是如果数组中有二个值是一样的,那么反转后会保留最后一个键和值,利用这个特性我们用他来间接的实现数组的去重。
代码示例:
<?phpheader("content-type:text/html;
charset=utf-8");$a = array(1, 5, 2, 5, 1, 3, 2, 4, 5);// 输出原始数组echo "原始数组
:";var_mp($a);// 。
通过使用翻转键和值移除重复值$a = array_flip($a);
// 通过再次翻转键和值来恢复数组元素$a = array_flip($a);// 重新排序数组键$a = array_values($a);// 输出更新后的数组echo "更新数组 :";var_mp($a);?>
⑸ php 如何取出数组中第一个和最后一个元素的值
这个,先遍历获得数组的个数,然后再根据数组下标试试
⑹ php 删除数组中的元素
不知道 同学知不知道 array_slice 这个函数?
$arr = array_slice($arr, 0, 3);
就可以了。
array_slice() 第一个参数是要切割的数组,第二个参数是起始位置,第三个参数是长度。
就是 切割 $arr这个数组,从第0个元素往后数3个。
array_slice 用法很灵活,可以支持负数参数,具体可以自己查看php手册。
http://cn.php.net/manual/en/function.range.php
⑺ 如何获取 php 二维数组的最后一个数组
亲,php中有方便的数组函数可以实现你的这个需求呢。
你可以使用$lastOne = array_pop($array); 来将二维数组的最后一个数组给弹出来。
然后你对$lastOne 的内容进行变更后,可以使用array_push($array, $lastOne); 再将刚刚pop出来的数组放回原数组的末尾即可。
这样就完成了你描述中的操作了。很简单的,希望可以帮到你哦!
boboidea-个人学习博客-欢迎来踩