Welcome Guest, Not a member yet? Register   Sign In
Parser for Multi-dimensional Array with the same key
#1

(This post was last modified: 03-28-2021, 07:18 PM by emmanuel.)

Consider the followings:
PHP Code:
$template 'Hello {name}, your partner is {partner}{name}{/partner}.';
$data = [
    'name' => 'John',
    'partner' => [
        ['name' => 'Mary'],
    ]
];

$parser = \Config\Services::parser();
echo 
$parser->setData($data)->renderString($template); 


It renders the following output:
Quote:Hello John, your partner is John.


Just wondering how do you access partner's name while it has the same key name. I have tried dot notation , but it seems it doesn't support that.
Reply
#2

Quote:The Parser class uses an associative array internally, to accumulate pseudo-variable settings until you call its render(). This means that your pseudo-variable names need to be unique, or a later parameter setting will over-ride an earlier one.

https://codeigniter.com/user_guide/outgo...arser.html

You will need to make your keys unique.

Code:
$data = [
    'person_name' => 'John',
    'partner' => [
        ['partner_name' => 'Mary'],
    ]
];
Reply
#3

Thanks Craig, missed that paragraph. Haha.
Reply




Theme © iAndrew 2016 - Forum software by © MyBB