В цикле в вашем контроллере вы ограничиваете количество слов, а затем устанавливаете это значение в массиве. Затем вы перезаписываете это значение с помощью функции strip_tags
. Вы используете обе функции для одного и того же значения вместо того, чтобы использовать измененные значения. (И я бы сначала убрал теги, а затем ограничил количество слов.)
Вы также просто перезаписываете значение $data['about_text_list']['text']
на каждой итерации. Я предполагаю, что это должен быть массив текстовых значений? Я хотел бы создать новый массив с обновленным содержимым и объединить ваш массив $data['about_text_list']
с новым массивом.
Измените этот цикл следующим образом:
$newarray = array();
foreach ($data['about_text_list'] as $key => $value)
{
$item_text = $value['text'];
$altered = strip_tags($item_text);
$newarray[$key]['text'] = word_limiter($altered, 100);
}
$data['about_text_list'] = array_merge($data['about_text_list'], $newarray);
// here, you create a new empty array,
// then loop through the array getting key and value of each item
// then cache the 'text' value in a variable
// then strip the tags from the text key in that item
// then create a new array that mirrors the original array and set
// that to the limited word count
// then, after the loop is finished, merge the original and altered arrays
// the altered array values will override the original values
Кроме того, я не уверен, в чем ваша ошибка (как вы нам не сообщили), но убедитесь, что вы загружаете текстовый помощник, чтобы дать вам доступ к функции word_limiter
:
$this->load->helper('text');
Конечно, все зависит от структуры вашего массива, о которой я сейчас думаю.