2012-12-26 32 views
6

के रूप में ऐरे प्रदर्शित करें मैं PHP/HTML का उपयोग कर एक तालिका मुद्रित करने का प्रयास कर रहा हूं। इस तरह सरणी के अंदर संग्रहीत डेटा:तालिका

Array ([id] => 1 [first_name] => mike [last_name] => lastname) 

मेरा कोड निम्नानुसार है। यह चलता है और कोई त्रुटि नहीं होती है हालांकि आउटपुट की उम्मीद नहीं है।

<table> 

<tr> 
    <th>1</th> 
    <th>2</th> 
    <th>3</th> 
</tr> 

<?php foreach ($res as $item): ?> 
<tr> 
    <td><?php echo $item['id'] ?></td> 
    <td><?php echo $item['first_name'] ?></td> 
    <td><?php echo $item['last_name'] ?></td> 
</tr> 
<?php endforeach; ?> 

</table> 

परिणाम मैं आइटम के प्रथम वर्ण है:: यहाँ PHP/एचटीएमएल कोड है

1  2  3 
1  1  1 
m  m  m 
l  l  l 

सुनिश्चित नहीं हैं कि मैं गलत क्या कर रहा हूँ? मैं वास्तव में एक स्पष्टीकरण की सराहना करता हूं।

अद्यतन:

PHP कोड कोई त्रुटि नहीं है कि:

<?php 
    foreach ($result as $row) 
    { 
     echo '<tr>'; 
     echo '<td>' . $row['id'] . '</td>'; 
     echo '<td>' . $row['first_name'] . '</td>'; 
     echo '<td>' . $row['last_name'] . '</td>'; 
     echo '</tr>'; 
    } 
?> 

और यह केवल एक "पंक्ति" उस में के साथ अपने सरणी है: $ की

आउटपुट परिणाम चर print_r का उपयोग कर ($ परिणाम) < पूर्व के साथ लिपटे> टैग

Array 
(
    [id] => 3 
    [first_name] => Jim 
    [last_name] => Dude 
) 

यहाँ परिणाम रहा है हो रही है:

वास्तविक तालिका परिणाम:

ID First Name Last Name 
3  3   3 
J  J   J 
D  D   D 

लेकिन अगर मैं सरणी में 0 है या 1 से अधिक (2 या अधिक अर्थ) यह पूरी तरह काम करता है। यह सिर्फ काम नहीं करता है जब मेरे पास तीर के अंदर तत्वों की केवल एक "पंक्ति" है। उदाहरण के लिए इस सरणी, पूरी तरह से काम करता है:

ID  First Name Last Name 
3  Jim   Dude 
4  John   Dude2 

मैं सच में यकीन है कि मैं गलत क्या कर रहा हूँ नहीं कर रहा हूँ:

Array 
    (
    [0] => Array 
     (
      [id] => 3 
      [first_name] => Jim 
      [last_name] => Dude 
     ) 

    [1] => Array 
     (
      [id] => 4 
      [first_name] => John 
      [last_name] => Dude2 
     ) 
    ) 

मैं इस परिणाम मिलता है। विचार यह नहीं जानता कि तालिका में कितनी वस्तुएं $result चर में पढ़ी गई हैं और फिर इस चर का उपयोग HTML तालिका के अंदर सभी तत्वों को प्रिंट करें। तालिका में ओ तत्व, तत्वों की 1 पंक्ति, तत्वों की 1 या अधिक पंक्तियां हो सकती हैं।

+0

तालिका में एन-स्तर सरणी का जवाब यहां है https://stackoverflow.com/questions/4746079/how-to-create-a-html-table-from-a-php-array/47015800# 47015800 – Delickate

+0

यह धागा उत्तर दिया गया है यहां ered [यहां क्लिक करें] (https://stackoverflow.com/questions/4746079/how-to-create-a-html-table-from-a-php-array/47068295#47068295) – Delickate

उत्तर

2

आप डेटा संरचना मैट्रिक्स है नहीं लेकिन एक सरणी:

Array ([id] => 1 [first_name] => mike [last_name] => lastname)

आप आप क्या चाहते हैं क्या करने के लिए कुछ इस तरह की जरूरत है:

Array(
    [0] => Array ([id] => 1 [first_name] => mike [last_name] => lastname), 
    [1] => Array ([id] => 1 [first_name] => mike [last_name] => lastname) 
    ........ 
); 

इसके अलावा, कोड ठीक लग रहा है ..

+0

मैंने वहां से foreach हटा दिया और अब यह सही ढंग से आइटम प्रदर्शित करता है। मुझे यकीन नहीं है कि अगर आप अपने मामले में उल्लेख करते हैं तो मेरे पास और अधिक "पंक्तियां" हैं, मैं आगे के बिना अगली में कैसे जाउंगा? और क्या होता है यदि मेरे प्रोग्राम में केवल एक "पंक्ति" के साथ सरणी है? –

+0

ठीक है, आपको डेटा संरचना को सही तरीके से उत्पन्न करने के लिए यहां महत्वपूर्ण समस्या है। आपको निम्नलिखित प्रश्नों का उत्तर देने की आवश्यकता है: "क्या मैं कई पंक्तियों की अपेक्षा करता हूं?", "क्या मुझे कोई पंक्ति नहीं चाहिए?" या यहां तक ​​कि "क्या मैं हर बार एकल पंक्ति की अपेक्षा करता हूं?"। यदि आपके पास एकाधिक पंक्तियां होंगी ** ** ** को 'foreach' लूप' के लिए '** की आवश्यकता होगी। मुझे यहां और अधिक ठोस होने की अनुमति दें, और पूछें कि आप क्या बनाने की कोशिश कर रहे हैं? –

2

अपने फ़ोरैच लूप को न हटाएं। अपने कोड जहां आप अपने सरणी का निर्माण देखे बिना, मेरा अनुमान होगा आप यह कर रहे हैं:

$res[] = array('id' => 1, 'first_name'=>'mike', 'last_name'=>'lastname'); 

कोष्ठक []:

$res = array('id' => 1, 'first_name'=>'mike', 'last_name'=>'lastname'); 

जब वास्तव में क्या आप शायद कर करना चाहते हैं यह है अपने सरणी में सभी मानों की एक सरणी जोड़ें।इस तरह आप मूल्यों के संग्रह के रूप में प्रत्येक के माध्यम से लूप कर सकते हैं, व्यक्तिगत मूल्य नहीं।

0

इस प्रकार मैंने अपने वेबपृष्ठ के साथ एक जैसी समस्या हल की। मैं चाहता था कि पेज सत्र वर्गों का उपयोग करके एक विशिष्ट शिक्षक सिखाए जाने वाले सभी वर्गों की एक सरणी प्रदर्शित करे। मुझे आशा है कि, भले ही विषय आपके लिए प्रासंगिक न हो, लेकिन सामान्य ज्ञान लोगों की मदद करेगा।

<?php 

    echo "<table border='1' style='border-collapse: 
    collapse;border-color: silver;'>"; 
    echo "<tr style='font-weight: bold;'>"; 
    echo "<td width='150' align='center'>Class</td>"; 
    echo "</tr>"; 

    foreach ($query_class_array as $row) 
    { 
     echo '<td width="150" align=center>' . $row['Class'] . '</td>'; 
     echo '</tr>'; 
    } 
?> 
1
<? Php 
echo "<table border="2">"; 

foreach($ array as $ values) 
{ 

echo "<tr><td>"; 

echo "$ values"; 

echo "</td></tr>"; 
} 

?> 

मैं एक मेज

-1

सरणी एसटीडी ऑब्जेक्ट प्रकार का है, तो में एक सरणी मूल्यों मुद्रण के लिए यह लिखा है, आप उपयोग नहीं कर सकते [], बजाय का उपयोग करें - विशिष्ट संस्थाओं पाने के लिए>

<!DOCTYPE html> 
<html> 
<body> 
<table> 

<tr> 
    <th>id</th> 
    <th>First name</th> 
    <th>Last name</th> 
    <th>email</th> 
    </tr> 

<?php 

foreach($data as $item) {?> 

<tr> 
    <td><?php echo $item->id; ?></td> 
    <td><?php echo $item->first_name; ?></td> 
    <td><?php echo $item->last_name ;?></td> 
    <td><?php echo $item->email;?></td> 

</tr> 

<?php }?> 

</table> 
</body> 
</html>