2013-08-02 2 views
0

Я создал цикл по каждому элементу в PHP, как это:Получить значения из PHP массива

foreach($value as $element_content => $content) { 

    $canvas_elements = "<div id='" . $element_id . "'>" . $content . "</div>"; 
    $elements[] = $canvas_elements; 

} 

Так я получаю значение в массиве PHP так:

print_r($elements); 

Но это дает результаты:

Array ([0] => 
Text to edit 
[1] => 
Text to edit 
) 

Но я хочу только этот вывод, а не Array ([0] => и т.д.:

<div id="element_id1"></div> 
<div id="element_id2"></div> 

Как это делается?

ответ

1

Зачем с массивом, если вы не хотите ничего, кроме эха/печати некоторые разметки:

foreach($value as $element_content => $content) 
{ 
    echo "<div id='" . $element_id . "'>" . $content . "</div>"; 
} 

Whill, тем не менее, если вы настаиваете на использовании этого массива:

echo implode('', $elements); 

витков массив в строку, точно так же, как вы этого хотели. Использование Вами print_r не путь вперед, так как это более функции отладки: check the docs

распечаток читабельной информации о переменной

Просто немного деталей: вам не кажется, что объявление $elements как массив в любом месте. PHP создаст новую переменную и присвоит вам пустой массив, правда, достаточно, но если вы измените свои ini-настройки на E_STRICT | E_ALL, вы заметите, что он не делает этого, не жалуясь на это. (и так точно)
Всегда лучше объявлять и инициализировать свои переменные заранее. письмо $elements = array(); не сложно, и это не дорого. Во всяком случае, это дешевле, чем производить уведомление.

+0

Спасибо за ответ! Я использовал ваш последний метод и работает точно так, как хотелось бы! – Kim

+0

@Kim: Приятно, хотя я должен сказать: избегайте массива, если это вообще возможно. Если вы не можете этого избежать, рассмотрите мою (слегка педантичную) боковую заметку внизу: _always_ объявить и инициализировать переменные заранее. –

0

использование как этот

<?php 
$data = array('a'=>'apple','b'=>'banana','c'=>'orange'); 
$string = implode("<br/>", $data); 
?> 
<pre><?php print_r($string); ?></pre> 

OUTPUT

apple 
banana 
orange 
0

print_r($array) является функцией, чтобы отобразить значение переменной для пользователя. он создается для целей отладки. Если вы хотите получить вывод HTML, используйте «эхо» или что-то конкретное.

foreach($value as $element_content => $content) { 
    echo "<div id='" . $element_id . "'>" . $content . "</div> \n"; 
} 
0
$elements = array(); 
foreach($value as $element_content => $content) { 
    $canvas_elements = "<div id='" . $element_id . "'>" . $content . "</div>"; 
    $elements[] = $canvas_elements; 
} 
echo $mergedStrArray = implode("\n", $elements); 

Можете ли вы попробовать для меня, работает ли это?

Смежные вопросы