Массив в массиве

Тема в разделе "Как сделать...", создана пользователем m1ko, 6 ноя 2013.

  1. m1ko

    m1ko Создатель

    Регистр.:
    15 авг 2010
    Сообщения:
    42
    Симпатии:
    3
    Вообщем возник такой вопрос

    в представлении выводится контент таким образом
    PHP:
    <?php

        
    foreach($data['updates'] as $row)
        {
            echo 
    '<h1>'.$row['title'].'</h1><p>'.$row['content'].'</p><small><p>'.$row['author'].'</a></p></small><br />';
        }

    ?>
    Это сам массив в модели

    PHP:
      public function get_content()
        {  
        return array(
              
                array(
                    
    'title' => 'Птичек увы Нет лия правый дев жертвы. Ни древних надежда Да поелику Во страждя Аз явленья на те ст Покрыть ИЗ. кто. Мы ли ты От Не ей уз. По от По От мрачным объятие он солнцев гл. .',
                    
    'content' => 'Око блистать вот Иль Сердечно Увы меж стремишь жив щит взгремел чьи Проходят. . кто. . Кисов Твоем хляби чисту падши вкруг. То от ее да Кто же ты От.

    Птичек увы Нет лия правый дев жертвы. Ни древних надежда Да поелику Во страждя Аз явленья на те ст Покрыть ИЗ. кто. Мы ли ты От Не ей уз. По от По От мрачным объятие он солнцев гл. . кто. Ея ИЗ ум Ах мы. Муз Создателю униженных Вся ваш Вам действует раздается Мелькнуть лес.

    Хожу Росс Сама жару белы мнил. Ли се уж уз же. Пощады Вершит тирана теснят тмится законе. Ль ни ковчегом пророках Но То ея ад Их мертвыми Кровавые. Благостию раз возвестит вскрыться Христовой клевещите дни моя суд случиться. Арф Тех вой паки миры Вам сей нами нам полн. Дай Лук Кто чья иль том мои моя ней. Ласточка крестном вознесся происшел небесных священну. Его Дум Глядит там тон вас войдем Пускай рай следит чтя. Век Зрю чту сын.

    . Кончил суетны зверей самого святую. Ах им Ту же Слиянный пустынна глупость ея Неверных слабость се Да Не. . Риз Дол Мое имя чей Дни. Остротой покорять премудру называем Разврату цепенеет. Ищущий нельзя скотам червям состав. Чтя БОГ нам вне. Уме чад без пар душ дар.

    Вой Сам Иль бег Ему. . Тех перла сие тел вер Скажу Вот детей сей слаба холмы пою звуку. Имя Умудряйся ополчатся ини Кои мысленные прольется Сии начертать пал. Тул чтя Вся лжи. Братия милует клочья. .'
    ,
                    
    'author' => 'avtor',
                    
    'date' => '12-04-2013'
                
    ),
                array(
                    
    'title' => 'asdasdasdasdasdasd',
                    
    'content' => 'asdasdasdasdasdsa подъем иностранцами. Иногдаasd asd asd sa das dтелей Airbnb кидали наa sdas dasd asdщи, но об этом в другой раз. ЦП попался..',
                    
    'author' => 'avtor',
                    
    'date' => '29 ноя 2013, 08:18'
                
    ),
                
    // todo
            
    );
        }
    А это контроллер
    PHP:
    function index() {
            
    $data["updates"] = $this->model->get_content();
            ...
    }
    В контроллере я написал функцию Cut() которая режет длинный текст в представлении это $row['content'] но он находится в массиве $data['updates']
    Как мне урезать длину $row['content'] этой функцией
    Кого смущает текст он рандомно был взять из гугла))
     
    Последнее редактирование: 6 ноя 2013
  2. newbik

    newbik Создатель

    Регистр.:
    22 апр 2008
    Сообщения:
    14
    Симпатии:
    8
    PHP:
    $row['content'] = mb_substr($row['content'], 0350'utf-8');
     
    m1ko нравится это.
  3. m1ko

    m1ko Создатель

    Регистр.:
    15 авг 2010
    Сообщения:
    42
    Симпатии:
    3
    -_- мне функцию к нему применить нужно, толку мне от того что вы написали...
     
  4. BDSG

    BDSG

    Регистр.:
    28 фев 2009
    Сообщения:
    203
    Симпатии:
    109
    так в чём проблема?.. всё правильно вам написали..
    PHP:
    foreach($data['updates'] as $row)
    {
        
    $row['content'] = mb_substr($row['content'], 0350'utf-8');

        echo 
    '<h1>'.$row['title'].'</h1><p>'.$row['content'].'</p><small><p>'.$row['author'].'</a></p></small><br />';
    }
    ну или к $data["updates"][0]['content'] в контроллере аналогично применяете..
     
    m1ko нравится это.
  5. m1ko

    m1ko Создатель

    Регистр.:
    15 авг 2010
    Сообщения:
    42
    Симпатии:
    3
    Я говорил что мне нужно функцию применить к переменной, а не тупо на ней урезать текст) позже ваш способ попробую)
     
  6. BDSG

    BDSG

    Регистр.:
    28 фев 2009
    Сообщения:
    203
    Симпатии:
    109
    вы возвращаете массив, а не объект.. т.ч. других вариантов (типа $foo->bar->cut()) у вас нет..
     
    m1ko нравится это.
  7. m1ko

    m1ko Создатель

    Регистр.:
    15 авг 2010
    Сообщения:
    42
    Симпатии:
    3
    может как-то вывод по другому реализовать?
     
  8. fmedia

    fmedia Создатель

    Регистр.:
    26 окт 2012
    Сообщения:
    33
    Симпатии:
    6
    А что если так:

    function cut ($array) {
    for ($i= 0; $i < count($array); $i++) {
    $array[$i]['content']=mb_substr($array[$i]['content'], 0, 350, 'utf-8');
    }
    return $array;
    }

    //Использование:
    // $content = $this->model->get_content();
    // $data["updates"] =$this->model->cut($content);
     
    Последнее редактирование: 9 ноя 2013
  9. m1ko

    m1ko Создатель

    Регистр.:
    15 авг 2010
    Сообщения:
    42
    Симпатии:
    3
    у меня уже прописано $data["updates"] = $this->model->get_content();
     
  10. fmedia

    fmedia Создатель

    Регистр.:
    26 окт 2012
    Сообщения:
    33
    Симпатии:
    6
    Ну тогда так
    $data["updates"] = $this->model->get_content();
    $data["updates"] =$this->model->cut($data["updates"]);
    На выходе в $data["updates"] ячейка 'content' будет с урезаным текстом
     
    Последнее редактирование: 9 ноя 2013