‘壹’ 求教php二维数组根据某一元素删除
<?php
$arr=array(
2=>array(
'catid'=>2,
'catdir'=>'notice',
),
5=>array(
'catid'=>5,
'catdir'=>'subject',
),
6=>array(
'catid'=>6,
'catdir'=>'news'
)
);
functionfindVal($arr,$dir){
foreach($arras$key=>$val){
if(in_array($dir,$val))
return$key;
}
}
functionarray_remove_by_key($arr,$key){
if(!array_key_exists($key,$arr)){
return$arr;
}
$keys=array_keys($arr);
$index=array_search($key,$keys);
if($index!==FALSE){
array_splice($arr,$index,1);
}
return$arr;
}
$keyz=findVal($arr,'subject');
print_r(array_remove_by_key($arr,$keyz));
?>
‘贰’ php 删除多维数组指定元素
foreach($data_arras$key=>$data){
if(in_array('id',array_keys($data))){
unset($data_arr[$key]['id']);
}
}
‘叁’ php二维数组如何根据一个ID删除一个元素
关键看你的二维数组的结果.
如果Id是下标并且是字符串,如下面的.
$demo = array('one'=>array(1,2,3),'two'=>array(3,4,5))
可以直接unset($demo['one']),
如果ID是下标并且直接是数值,则直接
unset($demo[1]);
如果ID是元素值,则没有好的办法,只能用for遍历,找到再unset()
‘肆’ 如何添加、删除PHP关联数组
�喾矗�憧梢酝�鄙�鞑⑻畛涫�椤H绻�阏�诖�硎�炙饕��椋�憧赡芟胧褂孟允久��暮��爸煤妥芳釉�兀�镚rray_push()和array_unshift()函数,但这些函数不能操作关联数组。 2、删除数组元素 如果要从数组中删除一个元素,请使用unset()函数, 使用数字索引数组时,删除数组元素的办法更多,更灵活,可以使用array_shift()和array_pop()函数分别从数组的开头和末尾删除一个元素。 3、交换键和值 假设你想创建一个名叫$states的新数组,使用州府作为索引,使用州名作为关联值,使用array_flip()函数很容易完成这个任务。 4、合并数组 假设前面的数组由一个基于Web的“FlashCard”服务使用,你想提供一种方法测试学生对美国各州首府的掌握情况,你可以使用array_merge()函数合并包含州和首府的数组。 5、编辑数组值 假设在数组中的数据包含大小写错误,在插入到数据库之前,你想纠正这些错误,你可以使用array_map()函数给每个数组元素应用一个回调。 6、按键对数组排序 FlashCard程序常常使用各种排序,如按字母顺序排序,你可以使用ksort()函数按键对关联数组进行排序。因为数组是通过参数传递给ksort()函数的,意味着你不再需要将排序结果分配给另一个变量。 7、随机数组排序 在FlashCard程序中还涉及到另一种随机排序技术,这时你要使用shuffle()函数实现数组项目的随机排序。如果不需要打乱数组顺序,你只是想随机选择一个值,那么使用array_rand()函数即可。 8、确定键和值是否存在 你可以使用in_array()函数确定一个数组元素是否存在。 9、搜索数组 你可能想搜索数组资源,这样用户就可以方便地用一个特定的州府检索关联的州,可以通过array_search()函数实现数组搜索。 10、标准PHP库 标准PHP库(Standard PHP Library,SPL)为开发人员提供了许多数据结构,迭代器,接口,异常和其它以前PHP语言没有的功能,使用这些功能可以通过面向对象的语法遍历数组。
‘伍’ 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
最好重新申请一个数组来保存删除后的数组。
如果是C++的话,直接使用vector更简单。
‘柒’ 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如何删除数组中的某个元素用法总结
如果要在某个数组中删除一个元素,可以直接用的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数组元素值的修改和删除问题
删除数组元素和删除一个变量一样
unset($strArray['key']);
更新是直接赋值
$strArray['key'] = 'new var';
=================
这种事情我做过, 关键是把 $strArray 放在文件中,以及对这个数组的操作.
1.存放,比如放在 strarray.php 中
$fp = fopen('strarray.php','w');
fwrite($fp,'<?php'."\n".'$strArray = '.var_export($strArray,1).";\n?>");
fclose($fp);
2. 读取
include 'strarray.php';
3. 删除
unset($strArray['key'])
====
要注意的是,如果使用函数来做这些操作,strArray是全局变量,在function中要有
global $strArray;
这句声明
我试过使用这个方法来存放经纬度数据,好处是不用xml文件或数据库,速度也非常快
‘拾’ PHP 数组重组
很简单,代码如下:
//假设数组变量$array保存了当前数据
foreach($arrayas$key$value){//遍历数组
//通过正则表达式来判断是否为诸如1.x的下标
if(!preg_match('/./',$key)){
//删除数组诸如下标为:1,2,3的数据
unset($array[$key]);
continue;
}
//通过.点来分割诸如1.x的下标
$array2=explode('.',$key);
//使用新数组来存储数据
$array3[$array2[0]][$key]=$value;
}
//如果数组下标在排序上有任何颠倒可用ksort()[正序]或krsort()[倒序]来排序
ksort($array3);
//打印重组的数组效果如下
print_r($array3);
Array
(
[1] => Array
(
[1.1] => 美妆保养
[1.2] => 美容工具
[1.3] => 护肤保养
[1.4] => 美容化妆
[1.5] => 美发护发
)
[2] => Array
(
[2.1] => 香水须后水
[2.2] => 工具配件
)
)
如果还有任何问题,欢迎追问~