2013-05-09 88 views
-1

我有一个名为复选框check_user_id[],如:

<input type="checkbox" value="87" name="check_user_id[]" class="waiting_user"> 
<input type="checkbox" value="88" name="check_user_id[]" class="waiting_user"> 
<input type="checkbox" value="89" name="check_user_id[]" class="waiting_user"> 

页面加载之前,我用这个装饰

$_POST = array_map('trim', $_POST); 

所有衣被合计越来越但不$_POST['check_user_id']值是直接在其变量名$check_user_id b得到'因为我的register_globalsON但我只想在$_POST['check_user_id']

值得做任何方式?

+2

如果你申请一个字符串函数到一个数组,数组将不复存在。使用'array_walk_recursive()'而不是'array_map'来避免这种情况。 – mario 2013-05-09 13:13:22

+4

这不是一个短信,你有自由和无限的字符。 Downvoted ... B'COZ我可以。 – 2013-05-09 13:13:35

+0

这里是第四个答案:[php全局微调$ \ _ post](http://stackoverflow.com/q/1336257)(可能重复) – mario 2013-05-09 13:16:02

回答

0

trim是仅在strings上有效的功能。

$_POST是一个数组,并且可以包含仅stringsarrays

如果要修剪多维数组中的所有字符串,应该使用或写入一些递归函数。

或执行您的阵列中的每个元素手动微调:

foreach($_POST['check_user_id'] as &$check){ 
    $check = trim($check) ; 
} 
+0

@mario是的,我知道,但我没有看到在'$ _POST'数组上执行'trim'操作的任何理由。这将是一个真正的开销,因为我可以通过'POST'输入大量无用的数据。 – vikingmaster 2013-05-09 13:19:18