2011-05-13 40 views
0

我已经清理了这个到我知道有问题的地方。坦率地说,我已经得到了一个foreach声明,将结果的一个字符切断。下面的评论中的示例。foreach修剪字符,我不告诉它!

print_r($getarticlemultiarray); 

/// this print_r returns good values like [title] => titletext [body] => bodytext 
foreach ($getarticlemultiarray as $zyz) { 
    echo $zyz['title']; 
// here is the problem. This echo statement is only throwing out 1 character 
// for example with the values in the example above it's just echoing a 't'. 

} // end foreach 

这的foreach嵌套在一个又一个,但我不这样做与字符串长度什么,我没有使用$ ZYZ其他地方。没有什么奇怪的,但没有特殊字符的普通单词。

+0

你可以给出你的print_r的确切输出,也可以在foreach循环中尝试print_r($ xyz)并给出它吗? – GWW 2011-05-13 00:28:53

+0

我认为你已经“清理过”它 - 这个例子将工作,只要你提到'print_r'就像你描述的那样。因此,你正在做其他事情导致的问题(或正确的位正在'回声',但由于CSS渲染问题等你看不到他们。 – 2011-05-13 00:31:48

+0

如果我做print_r print_r($ zyz)它与我应该得到的不匹配,它只是从数组中获得了标题,但它是一个完整的值 - 不是中断的,它的标题和正文值应该在那里? – 2011-05-13 00:51:06

回答

1

根据你所说的话,它看起来像你的print_r基本上是

Array (
    ['title'] => 'titletext', 
    ['body'] => 'bodytext 
) 

在这种情况下,你的foreach是设置$zyz分别titletextbodytext。这些字符串没有“标题”键。 PHP会将这些关键字视为0,然后返回第一个字符(因此为什么看到't')。似乎你不必在这里循环。

+0

好吧,我感觉很愚蠢,我在做这样的数组$ getarticlemultiarray = array(“title”=>“$ articletitle”, “body”=>“$ articlesdisplay”);而不是像这样$ getarticlemultiarray [] = array(“title”=>“$ articletitle”,“body”=>“$ articlesdisplay”); – 2011-05-13 00:57:25