在PHP中更改多维数组的特定键
我有一个叫做在PHP中更改多维数组的特定键,php,arrays,foreach,Php,Arrays,Foreach,我有一个叫做$array的二维数组。在这里的另一个问题之后,我知道如何将整个子数组从二维数组更改为如下所示: 代码 如何仅更改$array[0][3]、$array[0][4]和$array[1] $array使用$stamm+动词的结尾表示一段时间,例如“on”。 在某些情况下,我必须更改动词的词根($stamm)。 使用上面的代码,它可以完美地更改整个数组[0]和数组[1] 你为什么不干脆这样做呢 $array[0][3] = //your value; $array[0][4] = //
$array
的二维数组。在这里的另一个问题之后,我知道如何将整个子数组从二维数组更改为如下所示:
代码
如何仅更改$array[0][3]、$array[0][4]
和$array[1]
$array使用$stamm
+动词的结尾表示一段时间,例如“on”。
在某些情况下,我必须更改动词的词根($stamm
)。使用上面的代码,它可以完美地更改整个
数组[0]
和数组[1]
你为什么不干脆这样做呢
$array[0][3] = //your value;
$array[0][4] = //your value;
如果要更改$array[1]
的所有值:
foreach ($array[1] as $key => $value) {
$array[1][$key] = //your value;
}
编辑使用foreach完成所有这些操作:
foreach ($keys as $key) {
foreach ($array[$key] as $key2 => $value) {
if(($key==0 && ($key2 == 3 || $key2 == 4)) || ($key == 1) )
$array[$key][$key2] = //your value;
}
}
在foreach循环之前,它们的循环是if循环。我有很多类似的if循环,我会经常改变数组的某些部分(共轭脚本)。我认为用foreach-loops这样做会更短更优雅。为什么不
foreach($array[1]as&$value){$value=$new\u value;}
?@grisha检查我答案中的编辑部分以获得自动更新solution@LuthandoLoot谢谢,这是我一直在寻找的。将&($key2==3 | |$key2==4)
更改为$key2=array(3,4)这样的数组会更优雅吗?是的,您可以在这样的数组中添加接受的值$acceptedValues=array(1,2)
然后如果(在数组中($key2,$acceptedValues))
您能详细说明一下您真正打算做什么吗?我指的是功能部分,你想实现什么?那么我们可能会提供更好的解决方案/解释,谢谢!谢谢:)我相信下面已经提供了一些简单的解决方案。作为补充,你也可以“输入”你的价值观,也就是说,我的意思是用花蕊和结尾来赚钱。然后,如果您使用简单对象,您可以检查可能更可读的类型,即:if($value instanceof Stamm),然后。。。稍微复杂一点,但以后可能更容易阅读。
foreach ($keys as $key) {
foreach ($array[$key] as $key2 => $value) {
if(($key==0 && ($key2 == 3 || $key2 == 4)) || ($key == 1) )
$array[$key][$key2] = //your value;
}
}