我有一个大约 1000 个值的数组,我刚刚使用 shuffle() 对它们进行了洗牌。现在我想回应洗牌的结果。但这里有一个问题,可以在不循环数组或显示数组“语法”的情况下完成吗?
IE:
<?php
$myarray = array('a','b','c','d');
shuffle($myarray);
echo array_echo_vals_only($myarray);
/*
should echo: dbca
*/
?>
只需使用Implode
echo implode($myarray);
或者只是减少数组array_reduce
echo array_reduce($myarray, function($a,$b){$a .= $b; return $a;});
玩弄vsprintf
echo vsprintf(str_repeat("%s", count($myarray)), $myarray);
我们也有一些疯狂的方式..
echo preg_replace("/\W/", "", json_encode($myarray));
或者
echo str_replace(array("]","[","\"",","), "", json_encode($array));
我怎么想....
将整个数组值分配给字符串而不在 PHP 中循环
循环不是一个糟糕的解决方案..您不妨试一试...示例:
$l = "";
$c = count($array);
for($i = 0; $i < $c; ++ $i) {
$l .= $array[$i];
}
echo $l;
最简单的解决方案是使用implode
.
echo implode($array);
如果您确实关心速度...好吧...
我希望我不会得到这样的回应:
-1 用于“基准测试”这个
编辑:我做到了。
通过我的“综合测试”,str_replace
是最快的方法。
str_replace(array(']', '[', '"', ','), '', json_encode($array));
implode
.旧的、无效的测试结果:
但无论如何,这是我的测试(我使用了@Baba 脚本中的一些函数进行比较):codepad.org/BwBLpmgp。
结果:
array_shift
是禁食法。
用法: