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("首页","博客","下载","音乐");
同样的问题也是在原来数组的情况下生成新的数组出来

大家参与进来吧,我有额外的高悬赏分.

第1个回答  2009-06-19
删除数组元素和删除一个变量一样
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文件或数据库,速度也非常快
第2个回答  2009-06-19
//完成大致如下,如有问题可在次提出来!
foreach ($strArray as $key => $value){
$arr[]= $value;
if($id == $key){
$arr[$id] = ""; //这个地方写上要修改的值
/*若为空则删除对应的值,若填写新的值将修改前面的所对应的值*/
}
}
$strArray = $arr;
//将新生成的数组符值给旧数组

------------------------------------------
这难道没有吗?
你将 $strArray = $arr;
这个地方的数组 $strArray 打印出来看看和之前的是不是不一样了?

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网