说我有标签如何在PHP中使用array_filter()进行函数式编程?
$all_tags = array('A', 'B', 'C');
一个数组,我想创建一个$ _GET变量URL集。
我想的链接是:
'A'
链接到"index.php?x[]=B&x[]=C"
'B'
链接到"index.php?x[]=A&x[]=C"
等($ _ GET是除了“当前”元素中的所有元素的数组) (我知道有一个更简单方式来实现这一点:我实际上是简化更复杂的情况)
我想使用array_filter()
来解决这个问题。
这里是我的尝试:
function make_get ($tag) { return 'x[]=' . $tag; }
function tag_to_url ($tag_name) {
global $all_tags;
$filta = create_function('$x', 'global $all_tags; return ($x != $tag_name);');
return 'index.php?' . implode('&', array_map("make_get", array_filter($all_tags, "filta")));
}
print_r(array_map("", $all_tags));
但它不工作。我怀疑它可能与PHP中的映射和过滤器实际上是如何改变数据结构本身有关,并且返回一个布尔值,而不是使用函数式样,它们不会改变并返回一个新列表。
我也对其他方法使这段代码更简洁。
so ...无论链接是什么,从链接集合中删除该特定条目,然后用剩余的值构建URL? –
也许这样:http://www.ideone.com/vVnWe? –
@BradChristie:正确 – amindfv