Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Ошибка Array to String conversion
McLotos  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



武士道
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1389
Пользователь №: 28342
На форуме: 13 лет, 9 месяцев, 6 дней
Карма: 29




Добрый день. и снова проблема с массивами.
Не совсем понимаю на что он ругается.
$this->buffer[$block][$i]=str_replace(array_keys($this->tags), array_values($this->tags), $this->file[$i]);

$this->tags это массив
$this->file[$i] это элемент массива в котором нужно искать.


--------------------
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
vagrand  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2800
Пользователь №: 18145
На форуме: 15 лет, 8 месяцев, 28 дней
Карма: 91




SergeySA
Сделайте var_dump() для массивов $this->tags и $this->file и выложите сюда.


--------------------
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
McLotos  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



武士道
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1389
Пользователь №: 28342
На форуме: 13 лет, 9 месяцев, 6 дней
Карма: 29




tags
array(1) {
[0]=>
array(2) {
["{HEAD.Title}"]=>
string(9) "Заголовок"
["{HEAD.Keyw}"]=>
string(14) "ключевое слово"
}
}

file
array(10) {
[0]=>
string(35) "<!-- BEGIN:head --><!DOCTYPE html>
"

[1]=>
string(7) "<html>
"

[2]=>
string(7) "<head>
"

[3]=>
string(26) " <meta charset="utf-8" />
"

[4]=>
string(105) " <!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
"
[5]=>
string(29) "
<title>{HEAD.Title}</title>
"
[6]=>
string(52) "
<meta name="keywords" content="{HEAD.KeyWords}" />
"
[7]=>
string(51) "
<meta name="description" content="{TEST.Name}" />
"
[8]=>
string(42) "
<link href="style.css" rel="stylesheet">
"
[9]=>
string(24) "
</head><!-- END:head -->"
}


--------------------
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
linker  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 5790
Пользователь №: 22814
На форуме: 14 лет, 8 месяцев, 21 день
Карма: 264




Массивы должны быть "одномерными", т.е. array(0 => 'hello', 1 => 'world');


--------------------
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
McLotos  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



武士道
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1389
Пользователь №: 28342
На форуме: 13 лет, 9 месяцев, 6 дней
Карма: 29




linker
tags это одномерный ассоциативный массив
file это одномерный нумерованный массив


--------------------
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
McLotos  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



武士道
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1389
Пользователь №: 28342
На форуме: 13 лет, 9 месяцев, 6 дней
Карма: 29




$this->tags=array('{HEAD.Title}'=>'Заголовок')
а file читается из файла


--------------------
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
linker  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 5790
Пользователь №: 22814
На форуме: 14 лет, 8 месяцев, 21 день
Карма: 264




Собственно

array_keys($this->tags) даёт массив array(0 => 0)
array_values($this->tags) даёт массив array(0 => array("{HEAD.Title}" => "Заголовок", "{HEAD.Keyw}" => "ключевое слово"))


--------------------
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
T1grOK  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2804
Пользователь №: 24406
На форуме: 14 лет, 5 месяцев, 3 дня
Карма: 181




Цитата (SergeySA @ 3.01.2014 - 09:10)
tags это одномерный ассоциативный массив

А я вижу двумерный
array(1) {
[0]=>
array(2) {
["{HEAD.Title}"]=>
string(9) "Заголовок"
["{HEAD.Keyw}"]=>
string(14) "ключевое слово"
}
}


--------------------
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
linker  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 5790
Пользователь №: 22814
На форуме: 14 лет, 8 месяцев, 21 день
Карма: 264




Дело не в том, какой массив $this->tags дело в том, какие массивы получаются при array_keys() и array_values().


--------------------
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
McLotos  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



武士道
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1389
Пользователь №: 28342
На форуме: 13 лет, 9 месяцев, 6 дней
Карма: 29




о! Спасибо! Оказалось что в предыдущем методе значения в $this->tags присваиваются $this->tags[]=$array;
убрал скобки и всё заработало.

Это сообщение отредактировал SergeySA - 3.01.2014 - 13:29


--------------------
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
T1grOK  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2804
Пользователь №: 24406
На форуме: 14 лет, 5 месяцев, 3 дня
Карма: 181




Цитата (linker @ 3.01.2014 - 09:15)
Дело не в том, какой массив $this->tags

Да ну. Если так рассуждать, то виновата функция str_replace, которая не умеет работать с многомерными массивами.
Алгоритм это единое целое, цепочка причин и следствий, здесь бы я воздержался от "дело в этом или нет". Начиная с того какие данные есть изначально и заканчивая, тем как они обработаны - это все причины, а следствие, что имеем на выходе.


--------------------
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
McLotos  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



武士道
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1389
Пользователь №: 28342
На форуме: 13 лет, 9 месяцев, 6 дней
Карма: 29




T1grOK
ответ linker'а просто навёл на правильную мысль =)


--------------------
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
linker  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 5790
Пользователь №: 22814
На форуме: 14 лет, 8 месяцев, 21 день
Карма: 264




T1grOK
Дело ни в $this->tags, ни в str_replace(), дело конкретно в том, что возвращает функция array_values() здесь суть только в этом.


--------------------
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
McLotos  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



武士道
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1389
Пользователь №: 28342
На форуме: 13 лет, 9 месяцев, 6 дней
Карма: 29




разговор ушёл не в том направлении, проблема уже решена, дело было действительно в $this->tags


--------------------
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса