首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于前级循环的条件改变数组

问用于前级循环的条件改变数组
EN

Stack Overflow用户
提问于 2014-06-26 07:25:38
回答 4查看 125关注 0票数 0

我想有条件地更改循环数组,尽管使用foreach循环,然后将var发送到

代码语言:javascript
复制
Url = domain.com/myphppage.php?myarray=$array1

脚本有两个数组。此外,$_GET还用于从url获取var,最后使用foreach循环将两个数组之一输出到页面上的数组内容。

代码语言:javascript
复制
    <?php 
    $array1 = array(1,2,3,4)
    $array2 = array(5,6,7,8)
    ?>

    <?php 
    $arrayused = $_GET['myarray'];
    echo $arrayused; 
    ?>

    <?php foreach($arrayused as $item): ?>
     some html code to show loop values
    <?php endforeach; ?>

var是由url传递的,因为它在页面上显示为echo $arrayused的输出。

我期望$arrayused变量也会被foreach拾取,并通过该变量中的两个数组中的任何一个进行循环。

但是,它不拾取变量,也不进入foreach循环。如果我将这两个数组名称中的任何一个硬编码到foreach语句中,那么foreach循环就能正常工作。

为什么foreach语句似乎没有“识别”从url检索的变量?它在循环之前的页面上打印,所以它显然是可用的?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-06-26 07:35:53

如果我正确理解- $arrayused是一个字符串,可以是'array1‘或’array1 2‘。

而不是将额外的$添加到变量的乞丐(可变变量)中。

下面是代码示例:

代码语言:javascript
复制
<?php
$array1 = array(1,2,3,4);
$array2 = array(5,6,7,8);
?>

<?php
$arrayused = 'array1';
echo $arrayused;
?>

<?php foreach($$arrayused as $item): ?>
    some html code to show loop values
<?php endforeach; ?>
票数 1
EN

Stack Overflow用户

发布于 2014-06-26 07:32:41

它不能工作,因为$_GET['myarray']是一个字符串,而不是变量,即使它有一个$,您必须指定一个变量,其中包含这个字符串作为名称。

因此,您可以像这样使用数组:

代码语言:javascript
复制
$arrayused = ${$_GET['myarray']};

foreach($arrayused as $item) {
    // ...
}
票数 2
EN

Stack Overflow用户

发布于 2014-06-26 07:30:19

用开关。

代码语言:javascript
复制
switch($_GET['myarray']) {
case '$array1':
    $arrayused = $array1;
    break;
case '$array2':
    $arrayused = $array2;
    break;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24424692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档