将动态数字(按顺序)插入数组

时间:2017-08-23 23:36:06

标签: php arrays list numbers

我正在为我使用的另一个程序构建一个模板,并花了很多时间试图解决这个问题。

我有使用

提取数据的HTML复选框
selection[]

正如名字一样。

基本上,输入数据形成一个数组,其中包括两次。这个数字需要是动态的,但按顺序列出...... 1,2,3等。

示例输入列表类似于

This is $number example and $number is cool.
This $number is great but $number is better.

正确的输出是:

This is 1 example and 1 is cool.
This 2 is great but 2 is better.

我发现的每个解决方案都要求数字是静态的,例如爆炸数字列表并使用......

$numbers = "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15";
$numex = explode(" ", $numbers);
echo $number[0];

但由于每个选择都不同,每次选择不同的复选框,我都需要PHP以某种方式动态插入数字。

这可能吗?我正在疯狂地试图解决这个问题。

更新

以下是输入样本:

$game1 = "C:\\Program Files (x86)\\games\\1\\template\\1";
$game2 = "C:\\Program Files (x86)\\games\\2\\template\\2";
$game3 = "C:\\Program Files (x86)\\games\\3\\template\\3";
$game4 = "C:\\Program Files (x86)\\games\\4\\template\\4";

现在,在“1,2,3,4”的位置,我需要在提交表单后自动插入这些数字。例如,如果只是

$game3
$game4

选择后,输出将为:

$game3 = "C:\\Program Files (x86)\\games\\1\\template\\1";
$game4 = "C:\\Program Files (x86)\\games\\2\\template\\2";

这更有意义吗?

感谢您的时间。

1 个答案:

答案 0 :(得分:2)

不要使用这样的变量。每当您发现自己创建编号变量(如$game1$game2等)时,您应该使用数组:$game1$games[0]$game2为{{ 1}},等等。

提供选择数组索引的输入值。然后你可以循环输入。

$games[1]

然后你可以像这样处理它们:

Option 1 <input type="checkbox" name="selection[]" value="0,CSGO">
Option 2 <input type="checkbox" name="selection[]" value="1,DOTA">
Option 3 <input type="checkbox" name="selection[]" value="2,BLAH">
Option 4 <input type="checkbox" name="selection[]" value="3,XXXX">
...

因此,如果用户检查选项3和4,则数组将为:

$games = array();
$names = array();
foreach ($_POST['selection'] as $index => $value) {
    list($number, $name) = explode(',', $value);
    $gamenum = $index + 1;
    $games[$number] = "C:\\Program Files (x86)\\games\\$gamenum\\template\\$gamenum";
    $names[] = $name;
}

然后,您可以将$games = array( 2 => "C:\\Program Files (x86)\\games\\1\\template\\1", 3 => "C:\\Program Files (x86)\\games\\2\\template\\2" ) $names = array("BLAH", "XXXX"); 转换为以逗号分隔的列表:

$names