Php 更清晰的多维阵列回音方法
上面的回音工作得很好,但是当它涉及到2d数组时,在我的sublime中,只有{$line['text_2']}这部分工作得很好。升华和浏览器的输出错误Php 更清晰的多维阵列回音方法,php,echo,Php,Echo,上面的回音工作得很好,但是当它涉及到2d数组时,在我的sublime中,只有{$line['text_2']}这部分工作得很好。升华和浏览器的输出错误 echo "{$line['text_1']}"; 有什么想法吗 更新 echo "$array_2d[{$line['text_1']}][{$line['text_2']}]"; 使用xampp时,错误分析错误:语法错误,在C:\xampp\htdocs中意外出现“[”,应为“]” 我只是从mysql_fetch_assoc中输出一个值
echo "{$line['text_1']}";
有什么想法吗
更新
echo "$array_2d[{$line['text_1']}][{$line['text_2']}]";
使用xampp时,错误分析错误:语法错误,在C:\xampp\htdocs中意外出现“[”,应为“]”
我只是从mysql_fetch_assoc中输出一个值。我可以通过echo“”以另一种方式来完成,但是我正在尝试使我的代码更易于将来编辑和代码复制粘贴
是的,我在做类似的事情
echo "$array_2d[$line['text_1']][$line['text_2']]";
双引号中包含大量html代码。这应该可以:
echo "The price is $array_2d[$line['text_1']][$line['text_2']]"
您可以使用print\r()
回显阵列
e、 g:
输出将是:
Array
(
[test] => 1
[test2] => 2
[multi] => Array
(
[multi] => 1
[multi2] => 2
)
)
Array([test]=>1[test2]=>2[multi]=>Array([multi]=>1[multi2]=>2))
您还可以使用此选项使其在HTML上下文中更具可读性:
print_r($array);
为什么要输出数组
如果出于调试目的,您可以只使用本机php函数
print\u r()
或var\u dump()
在回显变量时,不必使用引号:
echo $array_2d[$line['text_1']][$line['text_2']];
如果确实需要使用该字符串输出某些内容,Concationation操作符可以帮助您:
echo "Array: " . echo $array_2d[$line['text_1']][$line['text_2']];
示例变体 我想知道为什么您会尝试使用
$line
数组作为键来访问$array\u 2d
中的数据
无论如何,试试这个:
echo($line['text_1'].'<br>');
也可以写得更短,如下所示:
echo($array_2d[$line['text_1']][$line['text_2']].'<br>');
');
变量转储与打印之间的差异
var\u dump
函数显示变量(或表达式)的结构化信息,包括其类型和值。使用缩进的值递归地探索数组以显示结构var_dump
还显示哪些数组值和对象属性是引用
另一方面,print\r
以可读的方式显示有关变量的信息,数组值将以显示键和元素的格式显示。但您将错过var\u dump
提供的详细信息
例如:
echo('<pre>');
var_dump($array_2d);
echo('</pre>');
Array
(
[0] => test
[1] => 1
[2] => Array
(
[0] => two
[1] => more
)
)
打印的输出\u r
:
array(3) {
[0]=> string(4) "test"
[1]=> int(1)
[2]=> array(2)
{
[0]=> string(3) "two"
[1]=> string(4) "more"
}
}
var\u dump的输出
:
$array = 'YOUR ARRAY';
echo "<pre>";
print_r($array);
echo "</pre>";
您可以使用print\u r()
或var\u dump()
回送数组
print\u r()
$array = 'YOUR ARRAY';
var_dump($array);
你应该能够说
获取子元素
当然,只有当它不是字符串中的唯一内容时,它才真正有用。如果你只是重复一个值,你不需要引号,事情就会变得简单
我将回显多行代码,用于html+javascript代码。打印支持多字符串?echo“$array_2d[$line['text_1']][$line['text_2']]”代码>应该可以工作,为什么需要{}?不打印整个数组,只需要mysqlecho“$array_2d[$line['text_1']][$line['text_2']]”的特定结果;这将是一个错误,只需执行echo$array_2d[$line['text_1'][$line['text_2'];我在一个新项目中首先要做的事情之一就是定义preprint()
来做这件事:)我总是让它变得更智能——处理数组、对象、字符串等等——这样我就可以调用函数,而不必关心打印的内容。省去打字:)哦,这是工作,我真不敢相信!我的升华是强调这种语法作为错误的方法,网络浏览器能够解析
$array = array('test', 1, array('two', 'more'));
Array
(
[0] => test
[1] => 1
[2] => Array
(
[0] => two
[1] => more
)
)
array(3) {
[0]=> string(4) "test"
[1]=> int(1)
[2]=> array(2)
{
[0]=> string(3) "two"
[1]=> string(4) "more"
}
}
$array = 'YOUR ARRAY';
echo "<pre>";
print_r($array);
echo "</pre>";
$array = 'YOUR ARRAY';
var_dump($array);
echo "item is {$array_2d[$line['text1']][$line['text2']]}";
echo $array_2d[$line['text1']][$line['text2']];