很多站长朋友们都不太清楚php按键删除多个元素,今天小编就来给大家整理php按键删除多个元素,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php 怎么删除多维数组中的元素 - 不知道键,只有值 2、 怎么删除php数组中的元素 3、 PHP怎么实现批量删除 实现批量删除的代码 4、 PHP代码实现:1)删除整个数组2)删除数组中指定的元素3)删除重复的元素? 5、 php如何删除两个数组中相同的元素 6、 php中删除数组中的某一些元素 php 怎么删除多维数组中的元素 - 不知道键,只有值对于多维数组的话,并且不清楚具体几维的话,那就只能使用foreach配合,递归进行遍历数组了。
以第一个子数组元素作为基础,存在的记录,不存在的加入基础匹配。
怎么删除php数组中的元素么删除php数组中的元素,不能是简单的把元素清空或者通过栈的方式去删除元素
工具/原料
php数组
php的unset方法
方法/步骤
php的数组操作起来很方便的说,至于怎么去删除其中的元素,可能你想过这样的办法
$arr[4] = '';
但是这样只是赋值为空了,不可行
array_shift($arr)
也只是删除了数组中的第一个元素,有没有简单快捷的方法呢?
有没有简单快捷的方法呢,肯定是有的,不需要去网数组的方法去想,直接可以这样就ok了
unset($arr[3]);
PHP怎么实现批量删除 实现批量删除的代码1.前台
<!DOCTYPE html>
<html>
<head>
<title>批量删除</title>
</head>
<body>
<scripttype="text/javascript">
//复选框
function checkall(all)
{
var ck = document.getElementsByClassName("ck");
if(all.checked)
{
for(var i=0;i<ck.length;i++)
{
ck[i].setAttribute("checked","checked");
}
}
else
{
for(vari=0;i<ck.length;i++)
{
ck[i].removeAttribute("checked");
}
}
}
</script>
<formaction="test.php"method="post">
<tableborder="1">
<tr><th><inputtype="checkbox"name="all"onclick="checkall(this)"/>id</th><th>名字</th></tr>
<!-- 此处调用显示列表函数 -->
<?phpshow() ?>
<tr><tdcolspan="3"><inputtype="submit"value="批量删除"></td></tr>
</table>
</form>
</body>
<?php
//显示列表
function show()
{
//连接数据库
@mysql_connect('localhost','root','');
mysql_select_db('test');
mysql_query('set names utf8');
$sql="select id,name from test";
$res=mysql_query($sql);
//循环取出数据
while($row=mysql_fetch_row($res))
{
echo "<tr>
<td>
<inputtype='checkbox'value='{$row[0]}'name='item[]'class='ck'/>
{$row[0]}
</td>
<td>{$row[1]}</td>
</tr>";
}
}
?>
</html>
2.后台
<?php
//接收post传来的数组
$arr=$_POST["item"];
/**
* 批量删除
* 思路:把前台批量选择的数据放在数组里,删除该数组即可
* @param $arr
* @return $res 成功or失败
*/
functionbatch_del($arr)
{
@mysql_connect('localhost','root','');
mysql_select_db('test');
mysql_query('set names utf8');
//把数组元素组合为字符串:
$str= implode("','",$arr);
//in 表示多个
$sql="delete from test where id in('{$str}')";
$res= mysql_query($sql);
if(!$res){
echo"删除失败";
}else{
if(mysql_affected_rows()>0){
echo"删除成功";
}else{
echo"没有行受到影响";
}
}
}
//调用批量删除函数
batch_del($arr);
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_dump($result1);$result2 = array_unique($result1);var_dump($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_dump($a);// 。
通过使用翻转键和值移除重复值$a = array_flip($a);
// 通过再次翻转键和值来恢复数组元素$a = array_flip($a);// 重新排序数组键$a = array_values($a);// 输出更新后的数组echo "更新数组 :";var_dump($a);?>
php如何删除两个数组中相同的元素首先,我看到这个问题中描述是“如何删除两个数组中相同的元素”,虽然那个人写了一大堆,竟然用的是array_unique(),从分析到给出的demo一直在解决如何删除“一个”数组中“重复”的元素。汗!答非所问的答案竟然会被采纳。
这里,简单分析一下提问者的真实意图,分以下2种情况:
1.现在有2个一维数组, $arr1和$arr2,现在要删除 $arr1 中存在于 $arr2 的元素。
解决方案:使用array_diff对比返回在 array1 中但是不在 array2 及任何其它参数数组中的值,代码如下:
<?php
$arr1 = array(1, 2, 3, 4);
$arr2 = array(2, 4);
//这一句即可
$arr1 = array_diff($arr1,$arr2);
var_dump($arr1);
2.先声明一下,我看了lt318025大神给出的答案,他的思维非常活跃,已经分了2种情况。
现在有2个一维数组,$a和$b,即删除$a中存在于$b的元素,删除$b中$a存在的元素,组后合并返回。
可是lt318025大神用的PHP版本太高,给出的demo在低版本PHP下运行失败,这里修正一下:
<?php
$a=array(1,2,3);
$b=array(2,3,4);
//得到存在于$a但不存在于$b中的元素组成的数组
$c=array_diff($a,$b);
//这里简单求出在$a但不在$b中的元素
var_dump($c);
//得到存在于$a但不存在于$b中的元素组成的数组与存在于$b但不存在于$a中的元素组成的数组的并集
$d=array_merge(array_diff($a,$b),array_diff($b,$a));
//这里彻底剔除了同时存在于$a和$b中的元素
var_dump($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按键删除多个元素的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php按键删除多个元素 php按键删除多个元素内容的详细内容...