因为你必须猜到我是php的新手,所以请耐心等待。 目前我正在编写一些服务器端脚本,而在我遇到它的时候,最近有一件事困扰着我。情况如下。我有两个数组:一个包含元素,另一个包含第一个数组元素的键(索引)。困扰我的是当我试图通过字符串中的双数组变量输出元素时:
echo "$elements[$index[0]]";
我得到" 解析错误:语法错误,意外' [',期待']'在第5行的C:\ xampp \ htdocs \ test1.php "错误。但是,如果只使用单个数组:
echo "$elements[0]";
它工作正常(输出a)。
我搜索了论坛,但对此没什么帮助。同时阅读What is the difference between single-quoted and double-quoted strings in PHP?单引号和双引号,但收效甚微。
我目前使用的解决方法是将$index
数组中的值保存到变量中并将其用作$elements
数组的索引:
$key = $index[0];
echo "$elements[$key]";
工作得很好,公共汽车感觉就像一个间接的水平。
代码:
<?php
$elements = ["a", "b", "c"];
$index = [2 , 1 , 0];
echo "$elements[$index[0]]";
?>
错误:
解析错误:语法错误,意外&#39; [&#39;,期待&#39;]&#39;在 第5行的C:\ xampp \ htdocs \ test1.php
感谢任何人花时间阅读并回答这个问题。
修改 谢谢大家的快速回复。 现在我看到我太天真了,以为我可以用一个简单的例子来模拟我的确切问题。 我正在处理的实际代码是:
mysql_query( "INSERT INTO pics (filename, date) VALUES( $dirArray[$keys[$index]] , $timestamp )" )
or die(mysql_error());
错误:
Parse error: syntax error, unexpected '[', expecting ']' in C:\xampp\htdocs\dbsetup.php on line 47
具有讽刺意味的是,我已经创建了一个间接层,我的问题试图解决代码中的间接层:)
答案 0 :(得分:3)
如果您只是回显变量,则不需要在PHP中使用引号:
echo $elements[$index[0]];
如果您想添加一些纯文本,则需要使用引号:
echo "element at index 0: " . $elements[$index[0]] . "\n";
根据您使用的PHP版本,使用[ ... ]
作为数组构造函数时可能会遇到错误;在PHP 5.3及更早版本中,必须使用语法
$fruits = array('apple', 'orange', 'banana');
而在PHP 5.4以后,您可以使用简写
$fruits = ['apple', 'orange', 'banana'];
PHP array documentation中有关于数组的更多信息。
答案 1 :(得分:2)
您需要使用以下代码更正您的php脚本:
$elements = array("a", "b", "c");
$index = array(2 , 1 , 0);
echo $elements[$index[0]];
答案 2 :(得分:0)
您没有创建一个数组,这就是您收到错误的原因,而且您没有正确打印数组,因此请更改您的代码
$elements = array("a", "b", "c");
$index = array(2 , 1 , 0);
echo $elements[0];
echo $index[0];
echo $elements[$index[0]];
答案 3 :(得分:0)
如果使用&#34;&#34;则不应将echo命令与数组变量一起使用。而不是括号()。在回显之前将数组结构分配给临时变量。
<?php
$elements = ["a", "b", "c"];
$index = [2 , 1 , 0];
$value = $elements[$index[0]];
echo "$value";
?>