Ich versuche, Arrays zu kreuzen, um automatisch Daten für verschiedene Testszenarien in einer App zu erstellen. Hier sind die Arrays sein Kreuz verbunden (man beachte, dass $base['sales']
hat einige Elemente hatte aus ihm abgezogen, es zu vereinfachen für die Entsendung dieser Frage):Cross-Join-Arrays zum Generieren von Daten für Testszenarien
$base['sales'] = ['shirts'=>1200.0, 'pants'=>1000.0, 'socks'=>1700.0];
$scenarioIDs = range(1, 5);
Das Endergebnis soll wie folgt aussehen:
$data[1]['sales'] = ['shirts'=>1200.0, 'pants'=>1000.0, 'socks'=>1700.0];
$data[2]['sales'] = ['shirts'=>1200.0, 'pants'=>1000.0, 'socks'=>1700.0];
$data[3]['sales'] = ['shirts'=>1200.0, 'pants'=>1000.0, 'socks'=>1700.0];
$data[4]['sales'] = ['shirts'=>1200.0, 'pants'=>1000.0, 'socks'=>1700.0];
$data[5]['sales'] = ['shirts'=>1200.0, 'pants'=>1000.0, 'socks'=>1700.0];
ich habe dies versucht:
$data = [];
array_map(function($scenarioID) {
$data[$scenarioID]['sales'] = $base['sales'];
}, $scenarioIDs);
echo '<pre>' . print_r($data, 1) . '</pre>';
exit();
aber die Botschaft Undefined variable: base in C:\xampp\htdocs\Sales\index.php on line 72
fünfmal (eine für jede scenarioID) erhalten.
Ich denke, es muss einen Weg geben, dies zu tun, ohne Schleifen zu verwenden. Wer weiß, wie?
'function ($ scenarioIDs) verwenden ($ base) {...' –
Mögliche Duplikat von [ PHP-Variablen in anonymen Funktionen] (https://stackoverflow.com/questions/11420520/php-variables-in-anonymous-functions) –