gpt4 book ai didi

php - 在 array_walk() 的回调函数中删除行

转载 作者:可可西里 更新时间:2023-11-01 13:10:11 26 4
gpt4 key购买 nike

我正在尝试使用 array_walk() 函数来处理数组:

<?php

$array = array('n1' => 'b1', 'n2' => 'b2', 'n3' => 'b3');

array_walk($array, function(&$val, $key) use (&$array){
echo $key."\n";
if ($key == 'n1')
$val = 'changed_b1';
if ($key == 'n2' || $key == 'n3') {
unset($array[$key]);
}
});

print_r($array);

获取:

n1
n2
Array
(
[n1] => changed_b1
[n3] => b3
)

看来,删除第 2 个元素后,第 3 个元素不会被发送到回调函数。

最佳答案

使用array_filter:

<?php
$filtered = array_filter($array, function($v,$k) {
return $k !== "n2" && $k !== "n3";
}, ARRAY_FILTER_USE_BOTH);
?>

参见 http://php.net/array_filter

关于php - 在 array_walk() 的回调函数中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26377761/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com