• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Parser for Multi-dimensional Array with the same key

#1
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


Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


  Theme © 2014 iAndrew  
Powered By MyBB, © 2002-2021 MyBB Group.