简体   繁体   English

非法类型偏移

[英]Illegal type offset

Hello i am having an array in php that looks like this: 您好,我在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
        )
)

From which i want to populate a table. 我要从中填充表格。 My 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>

But i get this error: 但是我得到这个错误:

Warning: Illegal offset type

I have tried $value = new stdClass(); 我已经尝试过$value = new stdClass();

but still the same error. 但仍然是相同的错误。 How can i populate 1 column of the table with english array and another column with german array. 我怎样才能用英语数组填充表的第一列,而用德语数组填充另一列。 Any help will be appreaciated!!! 任何帮助将不胜感激!!!

you can use for loop on your main array 您可以在主阵列上使用for循环

and print each index at each row for both languages 并在两种语言的每一行上打印每个索引

but first you need to find how many total words you are having in the language array. 但首先,您需要找到语言数组中共有多少个单词。

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

and this will do the magic for you. 这将为您带来神奇的效果。

Add more more level of foreach loop for $value variable... 为$ value变量添加更多级别的foreach循环...

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

Here 这里

$arrmerged holds your main array $ arrmerged保存您的主数组

$key contains english, German $ key包含英语,德语

and

$value contains $ value包含

        [0] => sparen

        [1] => anmelden

        [2] => passwort vergessen?

        [3] => kundenbereich

        [4] => passwort

        [5] => meine daten

        [6] => dashboard

        [7] => mitreisende

Use two level foreach() 使用两个级别的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 } ?>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM