【问题标题】:get variable value from array foreach PHP从数组foreach PHP中获取变量值
【发布时间】:2018-04-17 16:35:01
【问题描述】:

我正在使用数组 foreach 来获取值。

foreach($movie as $key=>$value) {
    if($key == 0) {
        echo $_SESSION['movie'] = $value;  //output1
    } else {
        echo $_SESSION['movie'] =  ", ".$value; 
    }   
}

echo $value; //output2

当它为输出 1 回显时:

电影1,电影2,电影3

输出2时:

电影3

我想在 foreach 之外使用变量 $value 但我无法获得 output1 结果,而只能获得 output2 结果.

我想要的输出2:

电影1,电影2,电影3

【问题讨论】:

  • 将值推入数组,然后在 for 循环块之外使用它们。
  • 您需要将值附加到您的 $value 变量 atm,然后将其分配给 $_SESSION['movie']
  • implode(',', $movie)
  • 非常感谢@AlexHowansky!它就像一个魅力,不知道它会那么简单。谢谢!!!!

标签: php arrays foreach


【解决方案1】:

如果您迭代 $movie 数组只是为了将电影打印为逗号分隔的字符串,则不需要。

echo implode(',', $movie);

【讨论】:

【解决方案2】:

在 foreach 中将您的值分配给 array

foreach($movie as $key=>$value){
 $moviename[]=$value;
 }

【讨论】:

    【解决方案3】:

    您是否尝试将字符串存储在 $_SESSION['movie'] 中?看起来你有点困惑。

    foreach($movie as $key=>$value){
        if($key === 0){
            $_SESSION['movie'] = $value; 
        }else{
            $_SESSION['movie'] .=  ", ".$value; 
        }   
    }
    echo $_SESSION['movie']; //output2
    

    会导致

    电影1,电影2,电影3

    你可以只使用内爆。 https://secure.php.net/manual/en/function.implode.php 例如:

    $movie = array(0 => 'Movie1', 1 => 'Movie2', 2 => 'Movie3');
    $movie_str = implode(',', $movie);
    echo movie_str;
    

    会导致

    电影1,电影2,电影3

    【讨论】:

    • 是的 :) 我将它存储到会话中
    • 我只需删除 foreach 并将我的代码更改为:$_SESSION['movie'] = implode(',', $movie);
    猜你喜欢
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    • 2015-11-27
    • 2020-05-31
    • 1970-01-01
    • 2015-08-30
    • 2021-09-01
    • 1970-01-01
    相关资源
    最近更新 更多