PHP列出所有而不是1

时间:2016-09-04 12:16:15

标签: php

我有这个代码应该显示$scheme中的所有<ul>值。如下所示,我有2个$scheme个变量,但只有1个显示在<ul>中。

$scheme = colorscheme('Test', 'hello');
$scheme = colorscheme('Black', 'hello');

function colorscheme( $color, $url ) {
    return array( $color, $url );
}

echo '<ul>';
foreach ($scheme as $value) {
    echo '<li>' . $value . '</li>';
}
echo '</ul>';

我怎样才能使每个$scheme显示而不是只显示1?

2 个答案:

答案 0 :(得分:0)

  

如下所示,我有2个$scheme个变量,但<{1}}中仅显示

这是因为<ul>变量被每个函数调用覆盖。见这里,

$scheme
  

我怎样才能使每个$scheme = colorscheme('Test', 'hello'); // Here, $scheme = array('Test', 'hello'); $scheme = colorscheme('Black', 'hello'); // Here, $scheme = array('Black', 'hello'); 显示而不是只显示1?

$scheme作为数组,并将返回的数组从$scheme函数追加到此数组,如下所示:

colorscheme()

然后使用$scheme = array(); $scheme[] = colorscheme('Test', 'hello'); $scheme[] = colorscheme('Black', 'hello'); 循环遍历此$scheme数组以显示所有颜色方案。

foreach

答案 1 :(得分:0)

通过两次使用相同的变量名,您只需在第二行覆盖它。您需要为每个方案使用唯一的变量名称,或者将它们全部保存在一个数组中(这将是更好的选择)。

此外,您的功能没有任何意义,也是多余的。

简单来说,您可以将所有方案放入多维数组中,这是一个由子数组组成的数组。然后循环遍历主数组并检索每个子数组的两个元素,以便您可以回显它们。

$schemes = array(
    array('White', 'scheme 1'),
    array('Black', 'scheme 2'),
    array('Green', 'scheme 3')
);

echo '<ul>';
foreach ($schemes as $scheme) {
    $color = $scheme[0];
    $url = $scheme[1];
    echo "<li>$color = $url</li>";
}
echo '</ul>';