Php 函数只返回第一个数组

Php 函数只返回第一个数组,php,arrays,wordpress,loops,Php,Arrays,Wordpress,Loops,我正在尝试向我的WordPress选项页面添加一些设置,这些设置取决于类别的数量。我创建这个函数是为了在主数组中使用,但它只返回第一个数组,而没有返回我的其他3个数组。一张打印出来的照片会显示所有的照片,所以我想不出来 function listSections() { $categories = get_categories(); foreach($categories as $category) { return array ( "name" =>

我正在尝试向我的WordPress选项页面添加一些设置,这些设置取决于类别的数量。我创建这个函数是为了在主数组中使用,但它只返回第一个数组,而没有返回我的其他3个数组。一张打印出来的照片会显示所有的照片,所以我想不出来

function listSections() {
  $categories = get_categories();
    foreach($categories as $category) {
      return array (
        "name" => $category->cat_name . " Label Color",
        "desc" => "Select a label color.",
        "id" => $shortname."_label_color" . $category->cat_ID,
        "type" => "select",
        "options" => $color_options,
        "std" => ""
      );
    }
}

你只能回来一次

function listSections() {
  $categories = get_categories();
  $return = array();
    foreach($categories as $category) {
      $return[] = array (
        "name" => $category->cat_name . " Label Color",
        "desc" => "Select a label color.",
        "id" => $shortname."_label_color" . $category->cat_ID,
        "type" => "select",
        "options" => $color_options,
        "std" => ""
      );
    }
    return $return;
}

修复方法是将每个数组推入一个临时数组,然后在循环结束时返回该数组。

您只能返回一次

function listSections() {
  $categories = get_categories();
  $return = array();
    foreach($categories as $category) {
      $return[] = array (
        "name" => $category->cat_name . " Label Color",
        "desc" => "Select a label color.",
        "id" => $shortname."_label_color" . $category->cat_ID,
        "type" => "select",
        "options" => $color_options,
        "std" => ""
      );
    }
    return $return;
}
解决方法是将每个数组放入一个临时数组,然后在循环结束时返回该数组。

当您从函数调用return时,它总是立即结束该函数的执行,因此,一旦返回第一个数组,函数就结束了-这就是为什么您只返回第一个数组

您可以尝试返回多维数组—一个包含您希望返回的所有数组的数组。

当您从函数调用return时,它总是立即结束该函数的执行,因此,一旦返回第一个数组,函数结束-这就是为什么您只返回第一个数组


您可以尝试返回多维数组—一个包含所有要返回的数组的数组。

该函数只能返回一次。它不能在一个循环中返回多个内容。到达第一次返回后,它将完全退出函数。如果要返回数组数组,应使用以下命令

function listSections() {
    $results = array();
    $categories = get_categories();

    foreach($categories as $category) {
        $results[] = array (
        "name" => $category->cat_name . " Label Color",
        "desc" => "Select a label color.",
        "id" => $shortname."_label_color" . $category->cat_ID,
        "type" => "select",
        "options" => $color_options,
        "std" => ""
        );
    }

    return $results;
}
使用语法$result[]=xyz;将xyz附加到数组的末尾。您可以使用如下代码循环返回的数组

$results = listSections();

$count = count($results);
for ($i = 0; $i < $count; $i++) {
    $category = $results[$i];
    echo $category["name"];
    etc......
}

该函数只能返回一次。它不能在一个循环中返回多个内容。到达第一次返回后,它将完全退出函数。如果要返回数组数组,应使用以下命令

function listSections() {
    $results = array();
    $categories = get_categories();

    foreach($categories as $category) {
        $results[] = array (
        "name" => $category->cat_name . " Label Color",
        "desc" => "Select a label color.",
        "id" => $shortname."_label_color" . $category->cat_ID,
        "type" => "select",
        "options" => $color_options,
        "std" => ""
        );
    }

    return $results;
}
使用语法$result[]=xyz;将xyz附加到数组的末尾。您可以使用如下代码循环返回的数组

$results = listSections();

$count = count($results);
for ($i = 0; $i < $count; $i++) {
    $category = $results[$i];
    echo $category["name"];
    etc......
}
returnkeyword的目标是退出函数。因此,函数只返回第一个元素是正常的。 例如,您可以将所有元素放入一个数组并返回此数组:

function listSections() {
  $categories = get_categories();
  $arr = array();
    foreach($categories as $category) {
      $arr[] =  array (
        "name" => $category->cat_name . " Label Color",
        "desc" => "Select a label color.",
        "id" => $shortname."_label_color" . $category->cat_ID,
        "type" => "select",
        "options" => $color_options,
        "std" => ""
      );
    }

    return $arr;
}
returnkeyword的目标是退出函数。因此,函数只返回第一个元素是正常的。 例如,您可以将所有元素放入一个数组并返回此数组:

function listSections() {
  $categories = get_categories();
  $arr = array();
    foreach($categories as $category) {
      $arr[] =  array (
        "name" => $category->cat_name . " Label Color",
        "desc" => "Select a label color.",
        "id" => $shortname."_label_color" . $category->cat_ID,
        "type" => "select",
        "options" => $color_options,
        "std" => ""
      );
    }

    return $arr;
}


你在一个循环中返回。这将导致你描述的行为。您需要将每个命中添加到一个临时数组中,并在循环结束后返回该数组。请仔细考虑返回的作用。您是在一个循环中返回的。这将导致你描述的行为。您需要将每个命中添加到一个临时数组中,并在循环结束后返回该数组。@Fraser我开始键入时不是这样。为了工作,每个数组需要单独添加到主数组中,因此返回arrayarray将不起作用。@Norbert动动脑筋。这个问题有无数种解决方案,例如通过引用传入主数组并将新数组推送到该数组:listSections&$mainarray{…$mainarray[]=数组…@Fraser从什么时候开始,这是一个可以接受的否决答案的理由?只有当答案没有回答问题或不准确时,你才应该否决投票。对不起,我不是有意放弃的-我道歉…我会尽快取消投票。我起床时站错了方向或其他什么地方。@Fraser我开始打字时不是这样的。为了工作,每个数组都需要单独添加到主数组中,因此返回arrayarray将不起作用。@Norbert动动脑筋。这个问题有无数种解决方案,例如通过引用传入主数组并将新数组推送到该数组:listSections&$mainarray{…$mainarray[]=数组…@Fraser从什么时候开始,这是一个可以接受的否决答案的理由?只有当它没有回答问题或不准确时,你才应该否决投票。对不起,我不是有意放弃的-我道歉…我会尽快取消投票。我起床时站错了方向或其他什么。有没有办法分别返回每个数组在另一个数组内而不使用函数外的另一个循环?函数只能返回1个值。若要返回多个值,必须返回包含这些值的数组。即使它可以返回多个值,调用程序如何访问这些值?是否有方法单独返回每个数组,而不是在另一个数组内使用ut使用函数外部的另一个循环?函数只能返回1个值。要返回多个值,必须返回包含这些值的数组。即使它可以返回多个值,调用程序如何访问这些值?