PHP中嵌套数组的字符串解析
你一定猜到了,我是php新手,所以请容忍我。 目前我正在编写一些服务器端脚本,虽然我一直在编写,但最近有一件特别的事情困扰着我。情况如下。我有两个数组:一个带有元素,另一个带有第一个数组元素的键(索引)。困扰我的是,当我试图通过字符串中的双数组变量输出元素时:PHP中嵌套数组的字符串解析,php,arrays,string,parsing,Php,Arrays,String,Parsing,你一定猜到了,我是php新手,所以请容忍我。 目前我正在编写一些服务器端脚本,虽然我一直在编写,但最近有一件特别的事情困扰着我。情况如下。我有两个数组:一个带有元素,另一个带有第一个数组元素的键(索引)。困扰我的是,当我试图通过字符串中的双数组变量输出元素时: echo "$elements[$index[0]]"; 我在第5行的C:\xampp\htdocs\test1.php中得到“解析错误:语法错误,意外的“[”,应为“]”错误。但是,如果仅使用单个阵列,如中所示: echo "$ele
echo "$elements[$index[0]]";
我在第5行的C:\xampp\htdocs\test1.php中得到“解析错误:语法错误,意外的“[”,应为“]”错误。但是,如果仅使用单个阵列,如中所示:
echo "$elements[0]";
它工作得很好(输出a)
我在论坛上搜索了一下,发现这方面没有什么帮助。此外,通读也使用了单引号和双引号,但收效甚微。
我目前使用的解决方法是将$index
数组中的值保存到变量中,并将其用作$elements
数组的索引:
$key = $index[0];
echo "$elements[$key]";
很好,巴士感觉像是一个间接的层次
守则:
<?php
$elements = ["a", "b", "c"];
$index = [2 , 1 , 0];
echo "$elements[$index[0]]";
?>
错误:
Parse error: syntax error, unexpected '[', expecting ']' in C:\xampp\htdocs\dbsetup.php on line 47
讽刺的是,我用我的问题创建了一个间接层次,试图解决代码中的间接层次:)您需要用以下代码更正php脚本:
$elements=数组(“a”、“b”、“c”);
$index=数组(2,1,0);
echo$elements[$index[0]];
您需要使用以下代码更正php脚本:
$elements=数组(“a”、“b”、“c”);
$index=数组(2,1,0);
echo$elements[$index[0]];
如果只是回显变量,则不需要在PHP中使用引号:
echo $elements[$index[0]];
如果要添加一些纯文本,则需要使用引号:
echo "element at index 0: " . $elements[$index[0]] . "\n";
根据您使用的PHP版本,使用[…]
作为数组构造函数时也可能会遇到错误;在PHP5.3及更早版本中,数组必须使用以下语法声明
$fruits = array('apple', 'orange', 'banana');
而在PHP5.4以后的版本中,您可以使用速记
$fruits = ['apple', 'orange', 'banana'];
中有更多关于数组的信息。如果只是回显变量,则不需要在PHP中使用引号:
echo $elements[$index[0]];
如果要添加一些纯文本,则需要使用引号:
echo "element at index 0: " . $elements[$index[0]] . "\n";
根据您使用的PHP版本,使用[…]
作为数组构造函数时也可能会遇到错误;在PHP5.3及更早版本中,数组必须使用以下语法声明
$fruits = array('apple', 'orange', 'banana');
而在PHP5.4以后的版本中,您可以使用速记
$fruits = ['apple', 'orange', 'banana'];
中有更多关于数组的信息。您没有创建数组,这就是为什么会出现错误,而且您没有正确打印数组,因此请更改代码
$elements = array("a", "b", "c");
$index = array(2 , 1 , 0);
echo $elements[0];
echo $index[0];
echo $elements[$index[0]];
你们并没有创建一个数组,这就是为什么你们会出错,而且你们并没有正确打印数组,所以请修改你们的代码
$elements = array("a", "b", "c");
$index = array(2 , 1 , 0);
echo $elements[0];
echo $index[0];
echo $elements[$index[0]];
如果使用“”而不是括号(),则不应将echo命令与数组变量结合使用。在回显之前,将数组结构指定给临时变量
<?php
$elements = ["a", "b", "c"];
$index = [2 , 1 , 0];
$value = $elements[$index[0]];
echo "$value";
?>
如果使用“”而不是括号(),则不应将echo命令与数组变量结合使用。在回显之前,将数组结构指定给临时变量
<?php
$elements = ["a", "b", "c"];
$index = [2 , 1 , 0];
$value = $elements[$index[0]];
echo "$value";
?>
最好用编辑中的材料开始一个新问题。您还应该使用相应的mysqli.*
函数,因为mysql.*
已被弃用。请注意,您实际上是在向mysql_查询传递一个字符串,因此您可以使用与将字符串构造为echo
ed相同的方式来构造它,即“一些文本”$变量[$index[0]]。“更多文本”
。最好用编辑中的材料开始一个新问题。您还应该使用相应的mysqli.*
函数,因为mysql.*
已被弃用。请注意,您实际上是在向mysql_查询传递一个字符串,因此您可以使用与将字符串构造为echo
ed相同的方式来构造它,即“一些文本”$变量[$index[0]]。“更多文本”
。