Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将PHP数组动态值转换为静态键_Php_Arrays - Fatal编程技术网

将PHP数组动态值转换为静态键

将PHP数组动态值转换为静态键,php,arrays,Php,Arrays,问题: 我有一个像这样的PHP数组 Array ( [read] => 0 [edit_posts] => 1 [delete_posts] => 2 ) Array ( [read] => 1 [edit_posts] => 1 [delete_posts] => 1 ) 我必须像这样把值0,1,2改成1 Array ( [read] => 0 [edit_posts] => 1

问题: 我有一个像这样的PHP数组

Array
(
    [read] => 0
    [edit_posts] => 1
    [delete_posts] => 2
)
Array
(
    [read] => 1
    [edit_posts] => 1
    [delete_posts] => 1
)
我必须像这样把值0,1,2改成1

Array
(
    [read] => 0
    [edit_posts] => 1
    [delete_posts] => 2
)
Array
(
    [read] => 1
    [edit_posts] => 1
    [delete_posts] => 1
)
我怎样才能做到这一点? 任何帮助都将不胜感激

谢谢和问候
Uzair Ahmed

您可以通过多种方式对其进行更改,但最简单的方式是通过功能进行更改

<?php

$initial = [
  'read' => 0,
  'edit_posts' => 1,
  'delete_posts' => 2
];

$update = [
  'read' => 1,
  'edit_posts' => 1,
  'delete_posts' => 1
];

// Old values
var_dump($initial);

// Change with array_replace function same keys
$newArray = array_replace($initial, $update);

// Check if values changed
var_dump($newArray);

如果要将相同的值放入整个数组,只需运行它并初始化它

array_walk($array,function(&$value){$value = 1;});

值是通过引用传递的。

Hi Eden,感谢您的帮助。我已经找到了一个解决方法,谢谢你的更新。如果其中一个解决方案对您有所帮助,我会很高兴您将问题标记为“已解决”,这样,在您之后阅读问题的人都可以得到有助于他的答案。嗨,伊登,请确认,我已更改了创建数组的基础。类似这样的“删除帖子,编辑帖子,'创建帖子”到“删除帖子:1,编辑帖子:1,'创建帖子:1”,所以这些更改满足了我的要求Shi Kale,谢谢你的帮助。我找到了一个解决办法