1

我希望能够过滤数组的叶节点,以确保数据被任何任意规范正确格式化。是否有一种简单的方法可以将过滤函数应用于 PHP 中的多维数组的叶节点?

4

1 回答 1

0
function filter_leaf_nodes($tree, $filter) {
    $ret = array();
    foreach ($tree as $subtree) {
        if (is_array($subtree)) {
            $ret[] = filter_leaf_nodes($subtree, $filter);
        } else if ($filter($subtree)) {
            $ret[] = $subtree;
        }
    }
    return $ret;
}

$tree = array(
    array(
        array(
            -1,
            5
        ),
        -3,
        2,
    ),
    array(
        3,
        9
    ),
    -9
);

$filter = function($node) {
    return $node >= 0;
};

var_dump(filter_leaf_nodes($tree, $filter));
于 2012-10-21T02:00:48.840 回答