J'ai une fonction dans ma classe qui contient plusieurs tableaux, il ressemble à ceci:Php chaîne garniture de valeurs tableau
protected function getTextItems()
{
if($this->hasChapters() && !$this->hasImages() && !$this->hasExtras())
{
return [[
'title' => 'test1',
'position0' => ['x0' => '165', 'x1' => '400', 'y0' => '265', 'y1' => '400'],
'position1' => ['x0' => '165', 'x1' => '405', 'y0' => '265', 'y1' => '405'],
],
[
'title' => 'test2',
'position0' => ['x0' => '295', 'x1' => '400', 'y0' => '395', 'y1' => '400'],
'position1' => ['x0' => '295', 'x1' => '405', 'y0' => '395', 'y1' => '405'],
],
[
'title' => 'test3',
'position0' => ['x0' => '425', 'x1' => '400', 'y0' => '525', 'y1' => '400'],
'position1' => ['x0' => '425', 'x1' => '405', 'y0' => '525', 'y1' => '405'],
]];
}
}
J'ai essayé de créer la chaîne (commande) avec ceci:
$itemCounter = 0;
$positionCounter = 0;
$recItemData = $this->getTextItems();
foreach ($recItemData as $recItemDataKey => $recItemDataValue)
{
$rec = 'convert -size 720x480 xc:black -strokewidth 5 ';
$rec .= '-stroke lime ';
$rec .= '-draw "line ' . $recItemData[$itemCounter]['position'.$positionCounter]['x0'] . ',' . $recItemData[$itemCounter]['position'.$positionCounter]['y0'];
$rec .= ' ' . $recItemData[$itemCounter]['position'.$positionCounter]['x0'] . ',' . $recItemData[$itemCounter]['position'.$positionCounter]['y0'] . '"';
if($itemCounter % count($recItemData) == 0)
{
$rec .= ' -stroke blue ';
}
$rec .= ' -draw "line ' . $recItemData[$itemCounter]['position'.$positionCounter]['x1'] . ',' . $recItemData[$itemCounter]['position'.$positionCounter]['y1'];
$rec .= ' ' . $recItemData[$itemCounter]['position'.$positionCounter]['x1'] . ',' . $recItemData[$itemCounter]['position'.$positionCounter]['y1'] . '"';
if($positionCounter <= count($recItemData))
{
$itemCounter++;
}
}
Actuellement, il imprime ce (ce qui est faux):
« convertir -size 720x480 xc: -strokewidth noir 5 -stroke chaux -draw "ligne 425525 425525" -draw "ligne 400400 400400" "
La sortie correcte devrait ressembler à ceci:
convertir -size 720x480 xc: -strokewidth noir 5 -stroke -draw chaux" ligne 165400 265400" -draw « ligne 295400 395400 » -draw « ligne 425400 525400 » -draw bleu -stroke « ligne 165405 265405 » -draw « ligne 295405 395405 » -draw « ligne 425405 525405 »
Vous réinitialisant la valeur de '$ rec' chaque fois par votre boucle quand vous faites' $ rec = 'convertir -size 720x480 xc: -strokewidth noir 5', ' –
ok je comprends, donc Je dois enregistrer les valeurs sur chaque boucle ou comment voulez-vous accomplir cela – utdev
ah je pense que je l'ai eu merci – utdev