非法类型的偏移

时间:2016-07-21 09:39:56

标签: php arrays

你好我在php中有一个如下所示的数组:

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
        )
)

我想从中填充表格。我的代码:

<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>

但是我收到了这个错误:

Warning: Illegal offset type

我试过了$value = new stdClass();

但仍然是同样的错误。如何用英文数组填充表格的1列,用德国数组填充另一列。任何帮助都会被证实!

3 个答案:

答案 0 :(得分:2)

你可以在主阵列上使用for循环

并打印两种语言的每一行索引

但首先你需要找到你在语言数组中拥有的总单词数。

<?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 } ?>

这将为你带来魔力。

答案 1 :(得分:0)

为$ value变量添加更多级别的foreach循环...

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

这里

$ arrmerged保存你的主阵列

$ key包含英语,德语

$ value contains

        [0] => sparen

        [1] => anmelden

        [2] => passwort vergessen?

        [3] => kundenbereich

        [4] => passwort

        [5] => meine daten

        [6] => dashboard

        [7] => mitreisende

答案 2 :(得分:0)

使用两级getRaw()

<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 } ?>