- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
array_walk_recursive($arr, function(&$val, $key){
if($val == 'smth'){
unset($val); // <- not working, unset($key) doesn't either
$var = null; // <- setting it to null works
}
});
print_r($arr);
我不希望它为空,我希望元素完全脱离数组。这甚至可以通过 array_walk_recursive 实现吗?
最佳答案
您不能在此处使用array_walk_recursive
,但您可以编写自己的函数。很简单:
function array_unset_recursive(&$array, $remove) {
$remove = (array)$remove;
foreach ($array as $key => &$value) {
if (in_array($value, $remove)) {
unset($array[$key]);
} elseif (is_array($value)) {
array_unset_recursive($value, $remove);
}
}
}
和用法:
array_unset_recursive($arr, 'smth');
或删除几个值:
array_unset_recursive($arr, ['smth', 51]);
关于php - 在 array_walk_recursive 中取消设置不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9150726/
我有一个菜单数组,它是一个多维数组,我想对每个项目做一些事情,所以我尝试了 array_walk_recursive。这是菜单: $menu = array( array( '
此代码有效,但 $vars 无法在 call() 函数中定义。为什么 $vars 不能传递给 array_walk_recursive()? class lib{ private $libra
此代码有效,但 $vars 无法在 call() 函数中定义。为什么 $vars 不能传递给 array_walk_recursive()? class lib{ private $libra
我如何使用 array_walk_recursive() 而不是这个: function check_value($val){ if(is_array($val)){ foreach($v
只是单纯的好奇。我在 Google 上找不到任何东西,我绝对不想深入研究 PHP 源代码。 是否array_walk_recursive实现尾调用优化? 最佳答案 简答,不:) 另请参阅:https:
如何使用 array_walk_recursive 修改键和值?? 这里只有值被编码 function _utf8_encode($arr){ array_walk_recursive($ar
array_walk_recursive 对数组中的每个成员递归地应用用户函数 基本语法 bool array_walk_recursive ( array &$input , call
我有一个关联数组,它是我使用以下代码从 ODBC 查询创建的: while ($row=odbc_fetch_array($oexec)) { if(empty($gr
我使用以下函数来验证搜索词是否在我的文件夹的文件名中。 $files2=list_files("documents/minelli"); Class Commentaire_filter{
array_walk_recursive($arr, function(&$val, $key){ if($val == 'smth'){ unset($val);
这是我在 php 中的一个类的简化版本: class someClass { public function edit_array($array) { array_walk_recu
我想对 SimpleXML 对象中的每个节点应用一个函数。 ABC DEF GHI JKL //函数reverseText($str){}
我已经查看了这里的一些答案,但似乎没有使用这种方法? 我有一个项目数组,项目是对象。该对象可以有一个键,它是“children”,“children”是一个对象数组等。 有什么办法可以实现吗? 示例:
一段时间以来,我一直在使用“传统”递归函数来展平多维数组,例如 $baseArray = array(array('alpha'), array('beta','
这个问题在这里已经有了答案: In PHP, what is a closure and why does it use the "use" identifier? (6 个答案) 关闭 3 年前。
我有以下代码,我想摆脱调用时间传递引用,(从 5.2 转换为 5.3)但我不确定正确的方法是什么这将是(类,全局变量,?) 这是一个应该包含所有内容的键盘 http://codepad.org/omb
我有一个深度多维数组,需要提取特定键的值。我发现 array_walk_recursive 函数将是我的最佳选择。我只需要第一次出现。 我的数组看起来像这样 - (除了更复杂) Array (
我尝试通过引用 Phps array_walk_recursive 传递第三个参数 $field = 'foo'; array_walk_recursive($config, function($va
我的 mysql 连接使用面向对象的风格,但是如果我这样写: array_walk_recursive($_POST, array($mysqli, 'real_escape_string')); 我
我是一名优秀的程序员,十分优秀!