php数组元素值的修改和删除问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php数组元素值的修改和删除问题相关的知识,希望对你有一定的参考价值。
循环把数组各元素值取出来,用表格以一行一个元素值的格式列出来,我想点击各行的修改以更新数组中的相应元素值.再重新生成新的$strArray数组.
同样点击各行的删除以删除相应的元素值.再重新生成新的$strArray数组.
注:各行的修改和删除的链接有数组的元素键值和元素值作为参数传递.
我自己的做法是:
---------a.php文件的CODE--------
<?php
$strArray = array("首页","博客","游戏","下载","音乐");
foreach ($strArray as $key => $value)
echo "<tr><td>".$key."</td><td>".$value."</td><td><a href='b.php?action=a1&id=".$key."&text=".$value."'>修改</a> | <a href='b.php?action=a2&id=".$key."&text=".$value."'>删除</a></td></tr>";
?>
-----------b.php文件的CODE-----------
$strArray = array("首页","博客","游戏","下载","音乐");
$id = $_REQUEST("id");
$text = $_REQUEST("text");
switch($_GET("action"))
case "a1":
echo "<form action='b.php?action=a3'><input name='text' value='".$text."'><input type='hidden' name='id' value='".$id."'><input name='submit' type='submit' value='更新'></form>";
break;
case "a2":
根据$id来删除$strArray数组中对应键值的元素值,完成后就重新生成数组.
大家帮我完成这部分.
break;
case "a3":
用户把信息提交到这里,根据提交的$id与数组$strArray的键值对比,如果相同就把数组对应的元素值改变,注:其它的元素值和键位值都不变.完成后就重新生成数组.
大家把这部分帮我完成一下
break;
大家帮我完成余下操作.我额外有悬赏分.
我想知道的是,如果改动了数组,怎么生成新的数组
比如-----更新操作吧--------
$strArray = array("首页","博客","游戏","下载","音乐");
数据中的 " 游戏 " 更改为 " GAME ",这样数组就应该变成这样
$strArray = array("首页","博客","GAME","下载","音乐");
问题就出在这里,怎么在原来数组的情况下生成新的数组出来
-----删除操作--------
同样的在
$strArray = array("首页","博客","游戏","下载","音乐");
数组中,如果想删除数组中的 " 游戏 " 哪数组就变成了这样
$strArray = array("首页","博客","下载","音乐");
同样的问题也是在原来数组的情况下生成新的数组出来
大家参与进来吧,我有额外的高悬赏分.
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文件或数据库,速度也非常快 参考技术B //完成大致如下,如有问题可在次提出来!
foreach ($strArray as $key => $value)
$arr[]= $value;
if($id == $key)
$arr[$id] = ""; //这个地方写上要修改的值
/*若为空则删除对应的值,若填写新的值将修改前面的所对应的值*/
$strArray = $arr;
//将新生成的数组符值给旧数组
------------------------------------------
这难道没有吗?
你将 $strArray = $arr;
这个地方的数组 $strArray 打印出来看看和之前的是不是不一样了?
以上是关于php数组元素值的修改和删除问题的主要内容,如果未能解决你的问题,请参考以下文章
如何从 php 数组中删除具有特定值的所有元素? (以尽可能最短的方式)[重复]