更清晰的方式来回显多维数组

时间:2013-07-26 13:41:04

标签: php echo

echo "{$line['text_1']}";

上面的回声工作正常,但是当涉及到2d数组时,在我的崇高中,只有{$ line ['text_2']}这部分工作正常。输出错误sublime和浏览器

echo "$array_2d[{$line['text_1']}][{$line['text_2']}]";

任何想法?


更新

echo "$array_2d[$line['text_1']][$line['text_2']]";

使用xampp,错误解析错误:语法错误,C:\ xampp \ htdocs中意外的'[',期待']'

我只是从mysql_fetch_assoc输出一个值。我可以通过echo''以另一种方式实现它,但是我正在努力使我的代码更容易用于将来的编辑和代码复制粘贴

是的,我正在做像

这样的事情
echo "The price is $array_2d[$line['text_1']][$line['text_2']]"

双引号中有很多html代码。

7 个答案:

答案 0 :(得分:1)

你为什么要输出数组?

如果是出于调试目的,您只需使用本机php函数print_r()var_dump()

答案 1 :(得分:0)

这应该有效:

echo $array_2d[$line['text_1']][$line['text_2']];

答案 2 :(得分:0)

您可以使用print_r()来回显数组。

e.g:

print_r($array);

输出将是:

Array ( [test] => 1 [test2] => 2 [multi] => Array ( [multi] => 1 [multi2] => 2 ) )

此外,您可以使用它来使其在HTML上下文中更具可读性:

echo '<pre>';
print_r($array);
echo '</pre>';

输出将是:

Array
(
   [test] => 1
   [test2] => 2
   [multi] => Array
        (
            [multi] => 1
            [multi2] => 2
        )

 )

答案 3 :(得分:0)

回显变量时,您不必使用引号:

echo $array_2d[$line['text_1']][$line['text_2']];

如果需要输出带有该字符串的内容,则连接运算符可以帮助您:

echo "Array: " . echo $array_2d[$line['text_1']][$line['text_2']];

答案 4 :(得分:0)

示例变体

我想知道为什么要尝试使用$line数组作为来访问$array_2d中的数据。

无论如何,试试这个:

echo($line['text_1'].'<br>');

这样:

echo($array_2d['text_1']['text_2'].'<br>');

最后这个(基于你的$line数组提供了$array_2d数组示例的键)

$key_a = $line['text_1'];
$key_b = $line['text_2'];
echo($array_2d[$key_a][$key_b].'<br>');

这也可以写得更短:

echo($array_2d[$line['text_1']][$line['text_2']].'<br>');

验证/转储数组内容

要验证您的数组是否包含您期望的数据,请使用print_r。请使用var_dump,因为它会返回更多信息,您可以用它来检查您认为可能遇到的任何问题。

示例:

echo('<pre>');
var_dump($array_2d);
echo('</pre>'); 

var_dumpprint_r

之间的差异

var_dump函数显示变量(或表达式)的结构化信息,包括其类型。递归地探索数组,其中值缩进以显示结构。 var_dump还显示哪些数组值和对象属性是引用。

另一方面,

print_r以可读方式显示有关变量的信息,数组值将以显示键和元素的格式显示。但是你会错过var_dump提供的详细信息。

示例:

$array = array('test', 1, array('two', 'more')); 

print_r的输出:

Array
(
    [0] => test
    [1] => 1
    [2] => Array
        (
            [0] => two
            [1] => more
        )
)

var_dump的输出:

array(3) {
  [0]=> string(4) "test"
  [1]=> int(1)
  [2]=> array(2) 
        {
            [0]=> string(3) "two"
            [1]=> string(4) "more"
        }
}

答案 5 :(得分:0)

您可以使用print_r()var_dump()来回显数组。

print_r()以人类可读的方式显示有关变量的信息,而var_dump()函数显示有关变量/表达式的结构化信息,包括其类型和值。

$array = 'YOUR ARRAY';
echo "<pre>";
print_r($array);
echo "</pre>";

$array = 'YOUR ARRAY';
var_dump($array);

答案 6 :(得分:0)

你应该可以说

echo "item is {$array_2d[$line['text1']][$line['text2']]}";

获得子元素。

当然,这只是在字符串中不是唯一的东西时才真正有用。如果您只回显一个值,则不需要引号,事情变得更简单。

echo $array_2d[$line['text1']][$line['text2']];