PHP变量变量和数组索引

时间:2016-01-28 05:53:50

标签: php

我认为这对你们中的一些人来说可能是一个简单的问题。我发现了类似的问题,但他们并没有完全解决我的问题。

我有两个阵列。

$ array_numerals

Array
(
[2] => two
[3] => three
[4] => four
[5] => five
[6] => six
[7] => seven
)

$ array_two

Array
(
[0] => $100
[1] => $200
[2] => $300
)

如果我使用

echo $array_two[0];

正确显示输出,$100,正如预期的那样。

我想做的是制作" 2"和#34; [0]"动态。 "两个"可以用"三"或"四"而#34; [0]"可以替换为" [1]"或" [2]"。

所以,如果我使用

$i = 2;
$j = 0;

echo $array_{$array_numerals[$i]}[$j];

它不起作用并显示空值。

编辑:谢谢大家的意见和回答。我必须补充说$ array_two,$ array_three等是另一个源给出的固定变量,所以它不像我可以控制这些数组的初始构造。因此,你们中的一些人给出的答案不会开箱即用(当然不是你的错,也许我在开始时并没有做出足够的澄清)。 Amadan和LuvnJesus给出的答案效果最好。

5 个答案:

答案 0 :(得分:4)

echo ${"array_$array_numerals[$i]"}[$j];

但我必须警告你,这样做是一个非常糟糕的主意。 而是使用另一个查找数组:

$array = Array(
  0 => Array(
    2 => "$100",
    ...
  ),
  ...
);

echo $array[$i][$j];

答案 1 :(得分:0)

为什么不使用:

$array['two'][0]
$array['three'][0]
$array['four'][0]
$array['four'][1]
etc...

答案 2 :(得分:0)

你可以像这样使用它:

$array_two[0] = $array_two[1];

用另一个数组做同样的事情。

答案 3 :(得分:0)

首先,创建"名称"数组并将其存储在变量中:

$arrayname = "array_".$array_numerals[$i];

将数组值存储到新数组

$newarray = $$arrayname;

现在输出您想要的任何元素:

echo $newarray[$j];

总而言之:

$arrayname = "array_".$array_numerals[$i];
$newarray = $$arrayname;
echo $newarray[$j];

答案 4 :(得分:0)

您可以使用PHP的Sub Button1_Click() Dim myPath As String, Fname As String myPath = "C:\SourceFolder" ChDir myPath Fname = Application.GetOpenFilename(FileFilter:="Excel Files, *.xlsx; *.xls", Title:="Select File", MultiSelect:=False) If Fname <> fale Then Workbooks.Open (Fname) End If End Sub 功能。我已经使用了你的数组并根据需要创建了结果。请check here