用给定的索引替换php数组中的值
Posted
技术标签:
【中文标题】用给定的索引替换php数组中的值【英文标题】:replace value in php array with given index 【发布时间】:2012-09-06 07:32:09 【问题描述】:我在用精确给定的索引替换数组中的值时遇到问题。确切地说,我想用一个新数字替换 array[2] 中的一个字符串,但我不知道。所以请看看我的资源:
pos:0 //position of index in array
id:498 //id of a field
new:6300 //new value to replace in an array
cost:6200-5200-4600-5600-4100 //the array
从上面,我想用“new”中的新字符串替换“cost”中的字符串索引“0”,所以预期的结果应该是:
6300-5200-4600-5600-4100
我试图在任何地方搜索,但除了 array_search 之外没有任何返回 - 这不是我想要的。请指教。
【问题讨论】:
你的数组看起来怎么样?你在这里所拥有的并不像 php 代码,但如果你有一个数组,你可以通过使用$array[$index] = $newvalue;
访问/替换一个值。
【参考方案1】:
$pos = 0; // position
$new = 6300; // new value
$cost = '6200-5200-4600-5600-4100'; // string
$cost = explode('-', $cost); // make it array
$cost[$pos] = $new; // change the position $pos with $new
$cost = implode('-', $cost); // return new $cost
// 6300-5200-4600-5600-4100
【讨论】:
@Mihai lorga 我试过你的代码,这似乎是最清晰的。但结果有点奇怪——价值加起来了。它变成了六个数组而不是五个。这是代码:code room_rate_updatez.php?rate|502|6200-5200-4600-5600-4100|3=5500 foreach($_GET as $key=>$_val) list($_name,$_id,$_cost,$_pos)=explode("|",$key); $cost = explode('-', $_val); // make it array $cost[$_pos] = $_cost; // change the position $pos with $new $cost = implode('-', $cost); // return new $cost echo "new cost : ".$cost; //new cost : 5500-6200-5200-4600-5600-4100
不过应该是$cost = explode('-', $_cost);
@Mihai 我明白了。我的错。我混淆了我自己的 var - 在 $cost 和 $new 之间交换,所以数组不知道在哪里替换。问候,
简单。干得好,伙计。【参考方案2】:
就这么简单:
<?php
$array = array(
6200,
5200,
4600,
5600,
4100
);
$pos = 0;
$new = 6300;
$array[$pos] = $new;
?>
【讨论】:
这是您的第一篇文章。所以它属于beta review - first posts。要查看它,我们必须编辑、投票、标记帖子。我在你的帖子中没有发现任何错误。因此,只需对其进行编辑并检查即可。 :) 您可以使用rollback function 撤消编辑,而不是像旧一样再次更新它。 感谢您的信息,我是新来的,不知道“回滚功能”... :) 您需要访问Meta Stack Overflow以了解更多关于Stack Overflow的信息。【参考方案3】:试试这个:
$the_array[$pos] = $new
【讨论】:
添加语法颜色 - 但没有出现颜色... :)以上是关于用给定的索引替换php数组中的值的主要内容,如果未能解决你的问题,请参考以下文章