Gezocht: sprintf functie, maar dan voor array
Hier wil ik het namelijk in toepassen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
class AnimalPropertyLinksController extends CoasterCmsAppController
{
public $paginate = array(
'AnimalPropertyLink' => array(
'conditions' => array(
'Animal.id' => '%b',
'AnimalPropertyLink.deleted' => null
),
'order' => array(
'AnimalProperty.sequence' => 'ASC',
'AnimalProperty.id' => 'ASC'
),
'limit' => 50
)
);
public function index()
{
$this->Paginator->settings = sprintf($this->paginate, $this->request->params['named']['animal_id']);
$properties = $this->Paginator->paginate('AnimalPropertyLink');
$this->set('properties', $properties);
}
?>
class AnimalPropertyLinksController extends CoasterCmsAppController
{
public $paginate = array(
'AnimalPropertyLink' => array(
'conditions' => array(
'Animal.id' => '%b',
'AnimalPropertyLink.deleted' => null
),
'order' => array(
'AnimalProperty.sequence' => 'ASC',
'AnimalProperty.id' => 'ASC'
),
'limit' => 50
)
);
public function index()
{
$this->Paginator->settings = sprintf($this->paginate, $this->request->params['named']['animal_id']);
$properties = $this->Paginator->paginate('AnimalPropertyLink');
$this->set('properties', $properties);
}
?>
Gewijzigd op 30/08/2015 09:27:29 door Sam Clauw
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$zoek = array("%", "procent");
$vervang = array("per 100", "/100");
$tekst[] = "Ik heb 50% verkocht";
$tekst[] = "Hij verkocht 50 procent";
$tekst[] = "Wij samen verkochten 100%";
echo str_replace($zoek, $vervang, $tekst);
?>
$zoek = array("%", "procent");
$vervang = array("per 100", "/100");
$tekst[] = "Ik heb 50% verkocht";
$tekst[] = "Hij verkocht 50 procent";
$tekst[] = "Wij samen verkochten 100%";
echo str_replace($zoek, $vervang, $tekst);
?>
Je hoeft dus niet met (s)printf() te werken.
Kan wel, al kan je dan beter met een foreach() werken. Ik zie er, in dit geval, geen voordelen in.
Toevoeging op 30/08/2015 10:05:11:
Een eigen functie is helemaal niet nodig.
Het zou niets meer zijn dan str_replace(). En voor het gemak zou je eigen functie dezelfde syntax krijgen...
Gewijzigd op 30/08/2015 10:03:59 door Eddy E
Bedankt voor de moeite Eddy! Ik zoek echter een oplossing om variabelen in een klasse property te kunnen stoppen. Als er geen manier bestaat om dit via een array te doen, dan zie ik niet meteen een duidelijke manier om dit aan te pakken.
Misschien een optie om eerst van een array json te maken en vervangen en vervolgens weer een array ervan maken?
Gho, dan denk ik toch dat dit een behoorlijke omweg is voor hetgeen ik wil bereiken. Ik kan uiteraard de array uiteraard meteen in m'n index actie uitvoeren in plaats van de array in een klasse property te stoppen. Maar dan wordt het weer een stuk onoverzichtelijk natuurlijk :)
Variabelen in een klasse-eigenschap te stoppen is het reguliere gebruik van variabelen, alleen zijn de dan gegroepeerd in een class. Je kunt een associatieve array gebruiken als waarde van een variabele.
Als je een associatieve, nested array wilt gebruiken met een bestaande find-and-replace -functie, of elke andere functie, dan kun je dat doen in combinatie met array_walk().