如何获得size_of $ _GET

时间:2014-07-31 20:27:19

标签: php arrays for-loop get superglobals

我想获取通过$ _GET提交的值的数量。我将使用for循环,每7个将被保存到一个类。有谁知道如何找到$ _GET数组的Size_of?我浏览了这个信息$_GET Manual,但看不到我在找什么。

这是我在提交后访问的课程中开始的代码片段。

for($i=0;$i<$_GET<size>;$i++) {
    $ID = $_GET["ID"][$i];
    $Desc = $_GET["Desc"][$i];
    $Yevaluation = $_GET["Yevaluation"][$i];
    $Mevaluation = $_GET["Mevaluation"][$i];
    $Cevaluation = $_GET["Cevaluation"][$i];
    $Kevaluation = $_GET["Kevaluation"][$i];
    $comment = $_GET["comment"][$i];
    //saving bunch to class next
}

2 个答案:

答案 0 :(得分:7)

$_GET是一个数组。与PHP中的任何其他数组一样,要查找数组中的元素数,您可以使用count()或其别名sizeof()

答案 1 :(得分:2)

count($_GET["ID"])

可行。但是,您必须确保每个索引包含相同数量的元素。

更安全的是

min(count($_GET["ID"]), count($_GET["Desc"]), ...)

使用array_map这可能是以下内容的快捷方式:

min(array_map(count, $_GET))

如果对你来说似乎很难,请仔细考虑最后一个。它被称为函数式编程,它是一种快捷方式来缩短某些东西。实际上array_map在数组的每个元素上调用另一个函数。它实际上与:

相同
$filteredGet = array();
foreach ($element in $_GET) { // this is the array_map part
    $filteredGet[] = count($element);
}
min($filteredGet);

更好的是$i是数组的第一级的结构,但我认为这不可能(内置)使用PHP $_GET - 解析。