2016-08-08 50 views
1

Ich muss meine beiden Arrays in einem eigenen Wrapping div außerhalb der foreach-Schleife wickeln.PHP zwei Render-Arrays in separaten Divs wrap

function foo() { 
//my foreach loops 

$top_content[] = $top; 
$bottom_content[] = $bottom; 

return array($top_content, $bottom_content); 
} 

Idealerweise würde ich in der Lage sein:

function foo() { 
//my foreach loops 

$top_content[] = '<div class="wrapper-one">' . $top . '</div>'; 
$bottom_content[] = '<div class="wrapper-two">' . $bottom . '</div>'; 

return array($top_content, $bottom_content); 
} 

aber dann bekomme ich einen Fehler aus: Hinweis: Array String-Konvertierung

jede Hilfe dankbar.

+0

was ist $ top und $ bottom? und wo erhalten Sie diese Ankündigung von Array String-Konvertierung? –

+0

Können Sie uns auch zeigen, wie Sie versuchen, die Rückgabe von 'foo()' zu verwenden. Wenn Sie versuchen, 'foo()' in der Verkettung mit einem String zu verwenden, dann werden Sie wieder mit 'Array to string conversion' Fehler enden. – Samundra

Antwort

1
function foo() { 
//my foreach loops 

$top_content[0] = '<div class="wrapper-one">' . $top . '</div>'; 
$bottom_content[0] = '<div class="wrapper-two">' . $bottom . '</div>'; 

return array($top_content, $bottom_content); 
} 
+1

$ top_content [] ist identisch mit $ top_content [0]. Der Index 0 ist implizit. –

0

Dies ist so, weil Sie versuchen, Array mit Zeichenfolge zu verketten. Seit $top und $bottom könnte als Array zuvor initialisiert worden sein.

$top_content[0] = '<div class="wrapper-one">' . $top . '</div>'; 
$bottom_content[] = '<div class="wrapper-two">' . $bottom . '</div>'; 

Also meine Vermutung ist, dass Sie $top und $bottom als Array erstellen müssen tun und versuchen, am Ende für-jede Schleife verketten.

Sie können es immer noch so machen.

$topContents = implode('', $top); 
$bottomContents = implode('', $bottom); 

$top_content[0] = '<div class="wrapper-one">' . $topContents . '</div>'; 
$bottom_content[] = '<div class="wrapper-two">' . $bottom . '</div>'; 

Der Trick ist ersten PHP implode Funktion verketten Array zu verwenden. Nach der Verkettung gibt es eine Zeichenfolge zurück. Diese Zeichenfolge kann dann mit anderen Zeichenfolgen verkettet werden.

Probieren Sie es aus und lassen Sie es uns wissen.

+0

Ich bekomme immer noch 'Hinweis: Array zu String-Konvertierung ', aber ich denke, ich muss einige Dinge umgestalten. – lookingGlass