$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";
}
});
由于您已经知道它的深度,因此没有理由递归地行走此数组。 我的建议是使用简单的循环:
for($i = 0; $i < sizeof($result); $i++)
$result[$i]['title'] = "Now title is change";
array_
函数,则可以使用php的the:
:
array_walk()
(
工作示例)
如果我没有错过任何东西,对我来说,您想实现的目标是一个简单的映射...因此,您可以使用
array_map函数进行操作:
array_walk($result, function(&$a, $key){
$a['title'] = "Now title is change";
});