Php 错误:某些配置文件页上的数组到字符串转换

Php 错误:某些配置文件页上的数组到字符串转换,php,arrays,yii,Php,Arrays,Yii,查看用户配置文件时,我正在通过数组进行循环: <?php foreach(unserialize($contact->search_data) as $searchData): ?> <li><?= $searchData; ?></li> <?php endforeach; ?> a:2:{s:8:"zip_code";s:6:"3829BE";s:8:"distance";s:2:"15";} 其结果

查看用户配置文件时,我正在通过数组进行循环:

 <?php foreach(unserialize($contact->search_data) as $searchData): ?>
      <li><?= $searchData; ?></li>
    <?php endforeach; ?>
a:2:{s:8:"zip_code";s:6:"3829BE";s:8:"distance";s:2:"15";}
其结果是:
  • 3829BE
  • 15
  • 这是来自userprofile的数据,错误如下:

    a:3:{s:12:"Specialiteit";a:1:{i:0;s:18:"Fit worden/blijven";}s:8:"zip_code";s:6:"4731TP";s:8:"distance";s:2:"20";}
    
    如何捕捉这个错误

    解决方案:

    <?php if($contact->search_data): ?>
        <ul>
        <?php foreach(unserialize($contact->search_data) as $searchData): ?>
          <li><?php 
          if(is_array($searchData)){
            echo '<ul>';
            foreach($searchData as $searchDatas):
              echo '<li>';
            echo $searchDatas;
            echo '</li>';
            endforeach;
            echo'</ul>';
          }else{
          echo $searchData; } ?></li>
        <?php endforeach; ?>
        </ul>
      <?php else: ?><i>Geen</i><?php endif; ?>
    
    
    
    吉恩
    您不能回显数组。使用
    print\r()
    。然后您将了解如何访问其中的元素

    <li><?php print_r($searchData) ?></li>
    

  • 您不能回显数组。使用
    print\r()
    。然后您将了解如何访问其中的元素

    <li><?php print_r($searchData) ?></li>
    

  • 正如我从序列化数据中看到的,数组键'Specialiteit'的值是一个数组而不是字符串,这就是为什么不能简单地回显它

    您可以按以下方式编辑代码:

    foreach($arr as $searchData): 
        echo '<li>';
        if( gettype($searchData) == 'array' )
            print_r($searchData);
        if( gettype($searchData) == 'string' )
            echo $searchData;
        echo '</li>';
    endforeach;
    
    foreach($arr as$searchData):
    回音“
  • ”; if(gettype($searchData)=='array') 打印(搜索数据); if(gettype($searchData)=='string') echo$searchData; 回音“
  • ”; endforeach;

    希望有此帮助。

    正如我从序列化数据中看到的,数组键“Specialiteit”的值是数组而不是字符串,这就是为什么不能简单地将其回显出来

    您可以按以下方式编辑代码:

    foreach($arr as $searchData): 
        echo '<li>';
        if( gettype($searchData) == 'array' )
            print_r($searchData);
        if( gettype($searchData) == 'string' )
            echo $searchData;
        echo '</li>';
    endforeach;
    
    foreach($arr as$searchData):
    回音“
  • ”; if(gettype($searchData)=='array') 打印(搜索数据); if(gettype($searchData)=='string') echo$searchData; 回音“
  • ”; endforeach;

    希望能有所帮助。

    。。。。我没有看到阵列中的阵列。。这不是我自己的代码,但我必须修复它。你是我的英雄,谢谢!。。。。我没有看到阵列中的阵列。。这不是我自己的代码,但我必须修复它。你是我的英雄,谢谢!