【问题标题】:Remove parameter from array then put back into array [duplicate]从数组中删除参数然后放回数组[重复]
【发布时间】:2021-05-12 07:37:34
【问题描述】:

我需要删除数组中的一个参数,更改值,然后将其放回数组中。

这是我最初获取值的方式:

<?php
  $value = $_POST['criteria'];

  $valueSet = isset($value['countries']) ? $value['countries'] : '';
  $valueSplit= explode(",", $valueSet);
  $valueFinal = "'". implode("','", $valueSplit) . "'";

  echo $valueFinal;
?>

使用上述方法,$valueFinal 变量可以如下所示:

'USA','CAN','FRA'

我需要能够检查数组中是否存在“FRA”,将其从数组中删除,将其更改为“GER”,然后将其放回数组中。

最后,$valueFinal 数组应如下所示:

'USA','CAN','GER'

我不确定这是否可能。我怎样才能做到这一点?

编辑

我可以使用以下方法检查该值是否存在:

if(in_array("FRA", $valueSplit)

但我不确定如何更新该单个值,然后将其添加回数组。

【问题讨论】:

标签: php arrays


【解决方案1】:

您不需要删除和放回数组元素。您只需找到元素的位置,并通过分配给相同的索引来替换它。

使用array_search() 查找数组中旧字符串的索引。如果找到,则重新分配元素。

$index = array_search('FRA', $valueSplit);
if ($index !== false) {
    $valueSplit[$index] = 'GER';
}

确保您使用!== 而不是!=,因为0 是一个有效的索引,并且它与false 的类型比较相等。

【讨论】:

  • 满足我的好奇心:这其中哪一部分不明显?
  • 请原谅我缺乏知识。我以前从来没有做过这样的事情。我能够使用 in_array 来检查该值是否存在。但我不确定如何更新实际值和/或将其放回数组中。
  • 任何关于 PHP 数组的教程都应该提到array_search()
  • @mickmackusa 所有的超级骗子都是关于删除,但问题是关于替换。我承认它们很相似,但我的常见骗子列表中没有这两个。
  • 好吧,我换了一个更好的骗子。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-19
  • 2018-07-10
  • 2014-07-19
  • 1970-01-01
  • 2020-02-11
  • 2019-08-22
  • 1970-01-01
相关资源
最近更新 更多