【问题标题】:How to determine the number of set values or non-set values in an array如何确定数组中设置值或非设置值的数量
【发布时间】:2015-07-04 04:41:31
【问题描述】:

我有以下功能:

public function searchsubject(){

         $subject1 = Input::get('subject1');
         $subject2 = Input::get('subject2');
         $subject3 = Input::get('subject3');
         $subject4 = Input::get('subject4');

//if a single subject is chosen

return Redirect::route('home', array('subject1' => $subject1, 'subject2' => 
$subject2, 'subject' => $subject3, 'subject' => $subject4));

//if two subjects are chosen

return Redirect::route('hometwo', array('subject1' => $subject1, 'subject2' 
=> $subject2, 'subject' => $subject3, 'subject' => $subject4));

//if three subjects are chosen

return Redirect::route('homethree', array('subject1' => $subject1,   'subject2' =>
        $subject2, 'subject' => $subject3, 'subject' => $subject4));

我的目标是将用户重定向到三个网址中的任何一个。

  1. 如果用户选择一个主题,则为 URL 1。
  2. 如果用户选择两个主题,则为 URL 2。
  3. 如果用户选择了三个主题,则为 URL 三个。

问题是我将如何实现这一目标?

我的想法是将所有这些值放入一个数组并检查其中有多少具有值并相应地重定向,但这是如何完成的?

【问题讨论】:

    标签: php arrays laravel


    【解决方案1】:

    你可以试试这样,首先获取主题:

    $subjects = [];
    $inputs = Input::all();
    array_walk($inputs, function ($v, $k) use (&$subjects) {
        if(starts_with($k, 'subject')) {
            $subjects[$k] = $v;
        }
    });
    

    现在您拥有所有以subject 开头的inputs/fields,例如:subject1subject2 等等。所以现在,只需获取$subjects 的计数就好了:

    $index = count($subjects);
    

    现在你可以使用,例如:

    // Keep this array pre-defined, could be a class property, if so then use $this->urls
    $urls = ['zero', 'url-for-one-subject', 'url-for-two-subjects', 'url-for-three-subjects'];
    
    // Redirect now using $urls[$index]
    return Redirect::route($urls[$index)->with($subjects);
    

    【讨论】:

    • 我收到一条错误消息,提示未定义函数 Redirect()。我正在使用 laravel 4.2 顺便说一句
    • 我以为我已经破解了它,但没有。即时传递的重定向是 ->with($subjects) 是一个数组。我需要将它作为字符串传递,以便我可以在另一个页面上使用该值。我该怎么做?
    • 更新了答案@MarkusSmith :-)
    • 如果我使用4.2是一样的吗?
    • 对不起,你第一次是对的。我有一个愚蠢的错误。终于完成了。 @阿尔法
    猜你喜欢
    • 2019-12-23
    • 1970-01-01
    • 1970-01-01
    • 2021-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-19
    • 1970-01-01
    相关资源
    最近更新 更多