有没有更简单的方法在字符串中打印PHP数组?

时间:2010-09-26 16:29:57

标签: php arrays string

如你所知,一个优秀的程序员是一个懒惰的程序员,但我只是懒惰。我的问题是:有没有更简单的方法在PHP echo语句中打印出一个数组元素(来自MySQL查询)?

我通常这样做:

echo "string start " . $array['element'] . " string end";

它的工作很精细,我只想用一种较短的打印方式,因为echo将变量的“['element']”位视为一个字符串。我可以使用list()来获取所有元素,但这不是我所追求的。

那么,那里有什么答案吗?

感谢阅读,

詹姆斯

5 个答案:

答案 0 :(得分:4)

你实际上可以做到

echo "string start $array[element] string end";

PHP允许双引号字符串中的变量。话虽如此,请不要。

答案 1 :(得分:2)

我注意到我知道你想要做什么。

如果你想要一个“更短”的版本,请省略这样的连接:

echo "string start $array[element] string end";

这也有效:

echo "string start {$array['element']} string end";

答案 2 :(得分:2)

$s = 'string start ';
$e = ' string end';
$v = $arr['element'];

// Now you need only 14 keystrokes:
echo $s.$v.$e;

答案 3 :(得分:1)

由于我非常不喜欢在字符串中插入变量,所以我更喜欢使用带有几个参数的echo:

echo 'string start ', $array['element'], ' string end';

除了速度快于字符串连接(.)之外,它更能处理表达式的回显结果,因为,具有所有优先级中最低的。

答案 4 :(得分:0)

使用{}围绕数组进行字符串插值,或使用sprintf

<?php
    $array = array('foo'=>'bar');

    echo "Print it with {}: {$array['foo']}";
    echo "\n";
    echo sprintf("Print it with sprintf: %s", $array['foo']);