我有像这样的2D数组。
Array ( [0] => Array ( [0] => 1 [1] => 1 [2] => 0 [3] => 1) [1] => Array ( [0] => 1 [1] => 0 [2] => 0 [3] => 0) [2] => Array ( [0] => 1 [1] => 0 [2] => 0 [3] => 0
我想要的是将所有这些元素打印为一个字符串。这意味着,要打印"110110001000"
我试过这样的东西
for ($x = 0; $x < $this->smallersize; $x++) {
for ($y = 0; $y < $this->smallersize; $y++) {
$myarray[$x][$y] = ($dct[$x][$y] >= $avg?"1":"0");
}
}
return join('',$myarray);
我想要的是打印"110110001000"
我的问题是当我尝试上面的功能时它会给出一个
错误:&#34;数组到字符串转换&#34;在线&#34;返回加入(&#39;&#39;,$ myarray);&#34;
如何解决这个问题?
答案 0 :(得分:2)
您需要使用implode
两次array_map
$array = Array(Array(1,1,0,1),Array(1,0,0,0),Array(1,0,0,0));
$result = array_map('implode',$array);
echo implode($result);//11011000100010
使用foreach
作为
foreach($array as $key => $value){
foreach($value as $v){
echo $v;
}
}
答案 1 :(得分:1)
正如我所理解的:你需要按顺序附加所有数组的元素。
$str = "";
for ($i = 0; $i<sizeOf($array); $i++)
{
for ($j=0; $j<sizeOf($array[$i]); $j++)
{
$str .= $array[$i][$j];
}
}
echo $str;