2016-07-21 7 views
0

Hallo ich ein Array in PHP habe, die wie folgt aussieht:Illegal Art Offset

Array 
(
    [english] => Array 
     (
      [0] => save 
      [1] => sign in 
      [2] => forgot password? 
      [3] => customer area 
      [4] => password 
      [5] => sign in to get access to the dashboard 
      [6] => your credentials are incorrect. please try again. 
      [7] => my information 
     ) 

    [german] => Array 
     (
      [0] => sparen 
      [1] => anmelden 
      [2] => passwort vergessen? 
      [3] => kundenbereich 
      [4] => passwort 
      [5] => meine daten 
      [6] => dashboard 
      [7] => mitreisende 
     ) 
) 

Von denen will ich eine Tabelle füllen. Mein Code:

<tbody> 
    <?php foreach ($arrmerged as $key => $value) { 

      echo $arrmerged['english'][$value];?> 
    <tr class="odd" role="row"> 
     <td class="sorting_1"><?=$arrmerged['english'][$value];?></td> 
     <td><?=$arrmerged['german'][$value];?></td> 
     <td><button type="button" class="btn btn-xs btn-success"><span class="glyphicon glyphicon-pencil"></span></button></td> 
    </tr> 
    </div> 
    <?php } ?> 
</tbody> 

Aber ich bekomme diese Fehlermeldung:

Warning: Illegal offset type 

ich versucht habe $value = new stdClass();

aber immer noch die gleichen Fehler. Wie kann ich 1 Spalte der Tabelle mit Englisch-Array und eine andere Spalte mit Deutsch-Array bevölkern. Jede Hilfe wird geschätzt !!!

+0

ist das Array fest codiert? –

+2

Sie wissen, dass die deutsche Übersetzung nicht dem englischen Teil entspricht? – Blobonat

+2

'$ value' ist ein Array. '$ arrmerged ['english'] [array()]' ist 1) unsinnig und 2) ein * unzulässiger Offset-Typ *. – deceze

Antwort

2

Sie Schleife auf dem Hauptarray in jeder Zeile für beide Sprachen

und drucken jeden Index

aber zuerst verwenden können Sie müssen herausfinden, wie viele Wörter Sie insgesamt im Sprach-Array haben.

<?php $total_words = count($arrmerged['english']); 
    for($i=0; $i<$total_words; $i++) 
    { ?> 

    <tr class="odd" role="row"> 
     <td><?=$arrmerged['english'][$i];?></td> 
     <td><?=$arrmerged['german'][$i];?></td> 
     <td><button type="button" class="btn btn-xs btn-success"><span class="glyphicon glyphicon-pencil"></span></button></td> 
    </tr> 
<?php } ?> 

und dies wird die Magie für Sie tun.

+0

danke viel Mann !!! – BRG

+0

Sehr willkommen Immer .. danke. –

+0

aber es gibt ein kleines Problem.Ich bekomme doppelte Zeilen – BRG

0

hinzufügen mehr mehr Niveau foreach-Schleife für $ value Variable ...

foreach ($arrmerged as $key => $value) 

Hier

arrmerged $ hält Ihr Haupt Array

$ key enthält Englisch, Deutsch

und

$ wert enthält

 [0] => sparen 

     [1] => anmelden 

     [2] => passwort vergessen? 

     [3] => kundenbereich 

     [4] => passwort 

     [5] => meine daten 

     [6] => dashboard 

     [7] => mitreisende 
0

Verwenden Sie zwei Level foreach()

<tbody> 
<?php foreach ($arrmerged as $key => $value) { 

     echo $key; // this will print english and germany 
     foreach ($value as $k => $val) { 
     //print the values for english 
     if ($key == 'english') {?> 
      <tr class="odd" role="row"> 
      <td class="sorting_1"><?=$val;?></td><? } 
     else {?> 
      //print the values for germany 
      <td><?=$val;?></td> 
      <td><button type="button" class="btn btn-xs btn-success"><span class="glyphicon glyphicon-pencil"></span></button></td> 
     <? } ?> 
    </tr> 
    </div> 
<?php } ?> 

+0

Dies druckt alles in 1 Spalte und es vermasselt die Tabelle – BRG