任意の仕様によってデータが適切にフォーマットされていることを確認するために、配列のリーフ ノードをフィルター処理できるようにしたいと考えています。PHPで多次元配列の葉ノードにフィルタリング関数を適用する簡単な方法はありますか?
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 に答える