2017-01-15 7 views
1

добавить этот код в OpenCart контроллер колонтитула:PHP Warning: Illegal строка Смещение в списке массива

$data['tags_name'] = array('inux','ubunuto','php'); 
    foreach ($data['tags_name'] as $tag) { 
     $data['tags'][] = array(
      'title' => $tag['tags_name'], 
      'href' => $this->url->link('product/search', 'tag=' . $tag['tags_name']) 
     ); 
    } 

и добавить эту строку в footer.tpl:

<?php foreach ($tags as $tag) { ?> 
    <li><a class="" target="" href="<?php echo $tag['href']; ?>"><?php echo $tag['title']; ?></a></li> 
<?php } ?> 

проверить выходной: print_r($tags); результат является:

Array ([0] => Array ([title] => i [href] => http://localhost/opencart/index.php?route=product/search&tag=i) 
[1] => Array ([title] => u [href] => http://localhost/opencart/index.php?route=product/search&tag=u) 
[2] => Array ([title] => p [href] => http://localhost/opencart/index.php?route=product/search&tag=p)) 

Я вижу только первое слово тегов: i Или u Или p и увидеть эту ошибку:

Warning: Illegal string offset 'tags_name' in /Applications/XAMPP/xamppfiles/htdocs/opencart/vqmod/vqcache/vq2-system_storage_modification_catalog_controller_common_footer.php

Как можно исправить эту ошибку и вывод ?!

+1

Измените '$ tag ['tags_name']' на просто '$ tag' ->' 'title' => $ tag, 'href' => $ this-> url -> link ('product/search', 'tag ='. $ tag'. '['tags_name']' - это ключ массива '$ data', но поскольку у вас есть' foreach ($ data ['tags_name'], как $ tag) 'вы уже находитесь в' ['tags_name'] '. – Sean

+0

@Sean: Sure U right. work Теперь – NewCod3r

ответ

0

Ваш массив многомерный массив arrays.Try как ..

<?php foreach ($tags as $key=>$value) { ?> 
    <li><a class="" target="" href="<?php echo $value['href']; ?>"><?php echo $value['title']; ?></a></li> 
<?php } ?> 

Вот пример:

<?php 
$arr = array(array('title'=>'i','href'=>'http://localhost/opencart/index.php?route=product/search&tag=i'),array('title'=>'u','href'=>'http://localhost/opencart/index.php?route=product/search&tag=u'),array('title'=>'p','href'=>' http://localhost/opencart/index.php?route=product/search&tag=p')); 
//print_r($arr); 

foreach($arr as $key=>$value){ ?> 
    <li><a class="" target="" href="<?php echo $value['href']; ?>"><?php echo $value['title'];?></a></li> 

<?php } ?> 
0
<?php 
$data['tags_name'] = array('inux','ubunuto','php'); 
    foreach ($data['tags_name'] as $tag) { 
     $data['tags'][] = array(
      'title' => $tag['tags_name'], 
      'href' => $this->url->link('product/search', 'tag=' . $tag['tags_name']) 
     ); 
    } 
?> 

что $tag['tag_name']? Вы можете echo это и вы найдете что-то