2016-02-04 2 views
1

Я пытаюсь вывести эти массивы в таблицу 3x4. В настоящий момент он выводит только первое значение каждого массива в новой строке в массиве 1 столбца. Хотя это должно быть 3 столбца с «точками качества», «качество» и «q» рядом с eachother. А затем в новой строке 'технологии', 'тек' и 'Т' рядом с Афоризм т.д.PHP-массив в таблице с использованием implode()

Output screenshot

<?php 
$Array1 = array('qualitypoint', 'technologies', 'India','Hey'); 
$Array2 = array('quality', 'tech', 'Ind','He'); 
$Array3 = array('q', 't', 'I','H'); 
echo '<table border = "3px">'; 
echo '<tr><td>' . implode('</tr><tr>', $Array1).'</td></tr>'; 
echo '<tr><td>' . implode('</tr><tr>', $Array2).'</td></tr>'; 
echo '<tr><td>' . implode('</tr><tr>', $Array3).'</td></tr>'; 
echo '</table>'; 
?> 
+0

Вы можете показать, что ожидает ваш ожидаемый результат? это действительно запутывает то, что вы хотите? –

ответ

1

Забудьте об этом взрывоопасном беспорядке, который сломается по первому возможному шансу. Сначала перестройте свои массивы и объедините их в 1 массив.

$Array[1] = array('qualitypoint', 'technologies', 'India','Hey'); 
$Array[2] = array('quality', 'tech', 'Ind','He'); 
$Array[3] = array('q', 't', 'I','H'); 

Тогда просто сделать

echo '<table>'; 
echo '<table>'; 
for($i=0;$i<=3;$i++) 
{ 
    echo "<tr>"; 
    for($j=1;$j<=3;$j++) 
    {  
    echo "<td>{$Array[$j][$i]}<td>"; 
    } 
    echo "</tr>";  
} 
echo '</table>'; 

Выходной

table> 
<tr> 
    <td>qualitypoint<td> 
    <td>quality<td> 
    <td>q<td> 
</tr> 
<tr> 
    <td>technologies<td> 
    <td>tech<td> 
    <td>t<td> 
</tr> 
<tr> 
    <td>India<td> 
    <td>Ind<td> 
    <td>I<td> 
</tr> 
<tr> 
    <td>Hey<td> 
    <td>He<td> 
    <td>H<td> 
</tr> 
</table> 

кончике Вы можете использовать count() и не беспокоиться о жестко прописывать предел Петля в. Таким образом, вы можете масштабировать данные столько, сколько хотите, без изменения кода

+0

Это сработало, но опять же стол 4x3, а не 3x4. В любом случае спасибо. – Max

+0

Обновлено уже для этого :) –

+0

Хорошо, спасибо!Будет использовать это, потому что это чище и легче изменить, чем ответ Вернера. Спасибо, Хэнки Панки! – Max

4

implode('</td><td>', $Array1)

implode('</td><td>', $Array2)

implode('</td><td>', $Array3)

Guess это то, что вы хотели сделать ... Использовать td вместо tr

+0

Мне нужна таблица 3x4, а не 4x3, «qualitypoint», «quality» и «q» должны быть рядом с eachother в своем столбце. Все равно спасибо. – Max

+0

'echo ''. $ Array1 [0]. ''. $ Array2 [0]. ''. $ Array3 [0]. ''; ' ' echo ''. $ Array1 [1]. ''. $ Array2 [1]. ''. $ Array3 [1]. ''; ' ' echo ''. $ Array1 [2]. ''. $ Array2 [2]. ''. $ Array3 [2]. ''; ' Так вот что вам нужно? Вы можете написать, что с петлями ofc ... –

+0

Hanky ​​получил то, что мне было нужно, большое спасибо за вашу помощь! – Max

2

Если вы хотите, вы также можете оставить массивы такими, какие они есть. Но implode нельзя использовать таким образом. Это также будет работать на вас:

$Array1 = array('qualitypoint', 'technologies', 'India','Hey'); 
$Array2 = array('quality', 'tech', 'Ind','He'); 
$Array3 = array('q', 't', 'I','H'); 

echo '<table border = "3px">'; 
foreach($Array1 as $key => $value){ 
echo '<tr><td>' . $Array1[$key] .'</td><td>' . $Array2[$key] .'</td><td>' . $Array3[$key] .'</td></tr>'; 
} 
echo '</table>'; 
+0

Это сработало, как я этого хотел, большое спасибо за помощь! – Max

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