2017-09-29 3 views
0

ich habe Array-Wert wie dieserFor-Schleife Array Anzeige

Array ( 
    [0] => A1 
    [1] => A2 
) 
Array ( 
    [0] => B1 
    [1] => B2 
    [2] => B3 
) 

Für

$explodedeductedfinal = explode(",",$CODE); 

explodiert dies mein PHP-Code wird

foreach($explodedeductedfinal as $is){ 
    $bankname = trim($is); 

    if (!empty($bankname)) { 
     echo "<td class='center'>$bankname</td>"; 
    }else{ 
     echo "<td class='center'>'novalue'</td>"; 
    } 
} 

Ausgabe der Daten in td zur Ausgabe:

|Column A|Column B|Column C| 
    A1  A2 
    B1  B2  B3 

gewünschte Ausgabe:

|Column A|Column B|Column C| 
     A1  A2 novalue 
     B1  B2  B3 

Ich mag nur ausgegeben, wenn der $ bankname es keinen Wert zeigt

+1

Was ist der Wert von '$ CODE'? –

+0

das Array ...... –

+1

Das Problem ist, Ihre Foreach geht nie zu Spalte c in Ihrem ersten Array, weil es nur zwei Elemente gibt. –

Antwort

1

Das dritte Element nicht leer ist, existiert es nicht, so wird nur foreach zwei Schleifen. Man könnte es auf die Länge zwingen Sie und liefern Standardwerte wollen:

$default = array_fill(0, 3, 'novalue'); 
$explodedeductedfinal = array_replace($default, explode(",", $CODE)); 

foreach($explodedeductedfinal as $is){ 
    $bankname = trim($is); 
    echo "<td class='center'>$bankname</td>"; 
} 
+0

Aufruf zu undefinierter Funktion arrray_fill() i –

+0

Zu viele Rs. Fest. – AbraCadaver

+0

DANKE !!!!!!!. –

0

auch die foreach durch jedes Element des Arrays leer gehen.

if (!empty($bankname)) { 

Wäre nicht leer, da Sie in einer Foreach sind. Wenn es immer 3 Spalten gibt, können Sie eine einfache for-Anweisung verwenden oder alternativ Javascript verwenden, um alle leeren Zellen in einer Tabelle mit einem Standardwert auszufüllen. Sieh dafür diese Geige. Ich musste es in der Vergangenheit benutzen.

http://jsfiddle.net/yL8t1psf/1/

+0

ich kann das nicht .. –

+0

OK, und ist Ihr Array 3 Spalten zu jeder Zeit? –

+0

nein es kann dynamisch sein –

0

den maximalen Index Ihrer Arrays ermitteln und Schleife auf, dass anstelle von foreach. Aus einer Datenbank könnten Sie die maximale Anzahl von Werten erhalten. Verwenden Sie dann isset(), um zu überprüfen, ob der Wert für diesen Index festgelegt ist oder nicht.

I codiert diese (quick and dirty, keine Datenbank, keine Ausgabeformatierung):

<table> 
<?php 
    $arA = array(0 => 'A1', 1 => 'A2'); 
    $arB = array(0 => 'B1', 1 => 'B2', 2 => 'B3'); 

    function output_ar($ar,$maxindex) 
    { 
     for ($i = 0; $i <= $maxindex; $i++) 
     { 
      if (isset($ar[$i])) 
      { 
       echo "<td>" . $ar[$i] . "</td>"; 
      } 
      else 
      { 
       echo "<td>novalue</td>"; 
      } 
     } 
    } 

    $maxindex = max(count($arA),count($arB)) -1; 
    echo "<tr>\n"; 
    output_ar($arA,$maxindex); 
    echo "</tr>\n<tr>\n"; 
    output_ar($arB,$maxindex); 
    echo "</tr>\n"; 
?> 
</table> 
+0

das Array ist statisch es kann viele sein, weil es von db kam –

+0

Der Code, um Ihr Array aus der Datenbank zu füllen, ist Ihnen als Übung überlassen :-). Deine erste Frage fragt nicht danach. – Nic3500

+0

wie? im newbee in Bezug auf PHP Entschuldigung –