1
I have a function in my Model
:
public function get_learning_category_list() {
$categorias = $this->db->select('t1.id, t1.title, t1.metadata, t1.meta_title, t1.description, t1.meta_description, t1.meta_spam, t1.url, t1.alt_img')
->from('learning_category t1')
->join('learning_rel_category t4', 't1.id = t4.category_id', 'left')
->join('learning t2', 't4.learning_id = t2.id', 'left')
->join('learning_rel_language t3', 't2.id = t3.learning_id', 'left')
->where('t3.language', $this->language)
->group_by('t1.id')
->get()->result_array();
foreach ($categorias as $c) {
$total = $this->db->select('count(learning_rel_language.learning_id) as total', false)
->from('learning')
->join('learning_rel_language', 'learning.id = learning_rel_language.learning_id', 'inner')
->join('learning_rel_category', 'learning.id = learning_rel_category.learning_id', 'inner')
->where('learning_rel_category.category_id', $c['id'])
->where('learning_rel_language.language', $this->language)
->group_by('learning_rel_language.language')->get()->first_row('array');
$metadata = json_decode($c['metadata']);
$tt = $c['title'];
$url = $c['url'];
if ($this->language != 'pt_br') {
$tt = $metadata->{$this->language};
$tt_pt_br = $c['title'];
}
$return[] = array('url' => $url, 'title'=>$tt, 'id'=>$c['id'], 'total'=>$total['total'], 'title_pt_br'=>$tt_pt_br);
}
return $return; //$categorias;
}
She gives me one Array
with the list of learnings:
Array (
[0] => Array (
[url] =>
[title] => Cursos sobre como gerar leads qualificados
[id] => 2
[total] => 6
[title_pt_br] =>
)
[1] => Array (
[url] =>
[title] => Cursos de Social Media Marketing
[id] => 3
[total] => 2
[title_pt_br] =>
)
[2] => Array (
[url] =>
[title] => Cursos de SEO e otimização de sites
[id] => 4
[total] => 3
[title_pt_br] =>
)
)
But I need to use the data from these learnings, the title
, id
, etc, in another function in the Model
:
public function url_format_category($category, $lang_domin) {
if (lang('abbr') == 'en_US')
$lang_domin = 'en/';
else if (lang('abbr') == 'es_US')
$lang_domin = 'es/';
$categorias = $this->learn->get_learning_category_list();
print_r($categorias);
foreach ($categorias as $cat) {
print_r($cat);
$cat = (object) $cat;
if ($cat->title != '') {
$return = strtolower(url_title($cat->title)).'-cmdo-'.$cat->id;
}
else {
$return = 'cursos-de-marketing-digital-online-'.$cat->id;
}
return $return;
}
}
I’m doing a function to see if the site url is correct. This function (url_format_category) will define the format of the url, which in this case would be (O title). '-cmdo-'.(O id) So what I need is to retrieve the title and id according to the Learning you find.
I did so, but with the foreach
always results in the same data regardless of which page I am.
How can I use this data Array
without the foreach
?
You have a
return
within aforeach
!?– Lucas
Yes, I know it’s wrong. I’m just starting to program. You know how I can do this?
– GWER
I didn’t understand your problem. Put an example of the result you want to get
– Lucas
I need to use the data from the Array within another function. But with the foreach it always takes the data from the last Array item.
– GWER
You realize you have one array into another? And so I need one
foreach
within another?– Maniero
@bigown There is no way to use this data without foreach?
– GWER
But the best way is this. I don’t understand why this obsession with not using the
foreach
.– Maniero
I’ll explain my whole purpose to you to make it clearer. What I am doing is a function to see if the site url is correct, this function (url_format_category) will define the format of the url, which in this case would be (the title). '-cmdo-'.(The id) So what I need is to retrieve the title and id according to the Learning you find. Understand?
– GWER