数组输出var_dump和echo矛盾PHP

时间:2013-12-15 16:57:03

标签: php arrays printing output

我在数组输出中遇到问题,以下是我在var_dump中输出的二维数组,但是当我回显这个数组时,它只显示总共9个索引,而不是显示3个9行的9 9 9个索引维数组。 输出var_dump

array (size=3)
  0 => 
    array (size=11)
      0 => string '' (length=0)
      1 => string '<p class=" td26">' (length=17)
      2 => string '<p class=" td26">' (length=17)
      3 => string '<p class=" td26">' (length=17)
      4 => string '<p class=" td26">' (length=17)
      5 => string '<p class=" td26">' (length=17)
      6 => string '<p class=" td26">' (length=17)
      7 => string '<p class=" td26">' (length=17)
      8 => string 'Mining' (length=6)
      9 => string '<p class=" td26">' (length=17)
      10 => string '<p class=" td26">' (length=17)
  1 => 
    array (size=11)
      0 => string '' (length=0)
      1 => string 'Abc<p class="tr3 td26">' (length=23)
      2 => string '<p class=" td26">' (length=17)
      3 => string 'Ahsan<p class="tr3 td26">' (length=25)
      4 => string '<p class=" td26">' (length=17)
      5 => string 'mm<p class="tr3 td26">' (length=22)
      6 => string '<p class=" td26">' (length=17)
      7 => string 'oo<p class="tr3 td26">' (length=22)
      8 => string '<p class=" td26">' (length=17)
      9 => string 'kk<p class="tr3 td26">' (length=22)
      10 => string '<p class=" td26">' (length=17)
  2 => 
    array (size=11)
      0 => string 'Fical' (length=5)
      1 => string '2005-06' (length=7)
      2 => string '2006-07' (length=7)
      3 => string '2007-08' (length=7)
      4 => string '2008-09' (length=7)
      5 => string '2009-10' (length=7)
      6 => string '2010-11' (length=7)
      7 => string '2011-12' (length=7)
      8 => string '2012-13' (length=7)
      9 => string 'Change' (length=6)
      10 => string 'Change2' (length=7)

回声输出:

Abc
Ahsan
mm
oo
kk
Fical
2005-06
2006-07
2007-08
2008-09
2009-10

10是我在某个变量中定义的限制,但问题是,当我打印小于10的值时,它们打印得很好(显然),但不超过10,我应该怎么做/审查?

错误代码(有错误):

foreach($d as $k=>$v){

  if(($v=='')&&($k!==0)){

    $d[$k].="<p class=\" td26\">" ;
    $d[$k-1].="<p class=\"tr3 td26\">" ;

   }

}

2 个答案:

答案 0 :(得分:0)

您是在浏览器上还是在命令行上测试此脚本?

如果你在浏览器上,这是很正常的,因为打印一个像

这样的字符串
 <p class="td26">

根本不可见......: - )

更多,你不能使用echo来打印数组的值(你应该只获得字符串“Array”...)。

你应该更好地解释你想要获得的东西......

答案 1 :(得分:0)

这是你的代码:

foreach($d as $k=>$v){
  if(($v=='')&&($k!==0)){
    $d[$k].="<p class=\" td26\">" ;
    $d[$k-1].="<p class=\"tr3 td26\">" ;
   }
}

为什么要设置$d[$k]然后立即设置$d[$k-1]$k-1有效地覆盖了您以前的值吗?为什么不这样做呢:

foreach($d as $k=>$v){
  if(($v=='')&&($k!==0)){
    $d[$k].="<p class=\" td26\">"
          . "<p class=\"tr3 td26\">"
          ;
   }
}

除非我完全错过代码的目标?

相关问题