如何使用PHP自己的函数更改数组的值

问题描述 投票:0回答:3
$result = array( 0 => array( "title" => "I am a hero!", "cat" => "literature", "date" => "23/7/2014", ), 1 => array( "title" => "Significant Moment!", "cat" => "psychology", "date" => "29/7/2014", ), 2 => array( "title" => "Coins do not count", "cat" => "economy", "date" => "23/7/2014", ), );

现在,我想递归循环循环,并检查当前密钥是否是 “标题”,请更改其价值。这样的事情:
for(looping $result)
{
  if($current_key == "title")
  {
     $result[$current_key] = "Now title is change";
  }
}

我想为此使用PHP的数组函数。我认为

array_walk_recursive
是这样的选择。我尝试了以下代码,但它更改了每个值,而不仅仅是相应的密钥:

array_walk_recursive($results, function(&$item, $key) use(&$results){ if($key == "title"); { $item = "Title Changed"; } });

    

您的代码很好,但是您在statement Line和IF statement行中有一个半殖民地,因此“如果”被忽略。
array_walk_recursive($results, function(&$item, $key) use(&$results){
    printer($key, true, false, false);
    if ($key == "title") {
        $item = "Title Changed";
    }
});
php arrays
3个回答
1
投票

由于您已经知道它的深度,因此没有理由递归地行走此数组。 我的建议是使用简单的循环:

for($i = 0; $i < sizeof($result); $i++)
    $result[$i]['title'] = "Now title is change";

1
投票
array_

函数,则可以使用php的the:

array_walk()

工作示例
    

如果我没有错过任何东西,对我来说,您想实现的目标是一个简单的映射...
因此,您可以使用

array_map函数进行操作: array_walk($result, function(&$a, $key){ $a['title'] = "Now title is change"; });


0
投票
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.