(PHP) Array multiplizieren.
Hallo Zusammen.
Folgendes: Ich habe zwei numerische Arrays die NUR Zahlen enthalten. ($zahlenkette1 und 2)
Jetzt muss ich die erste Zahl aus $zahlenkette1 mit der ersten Zahl aus $zahlenkette2 multiplizieren und zweite mit zweite undso weiter. Das Ergebniss soll an die gleiche Position in ein drittes Array gespeichert werden.
Ich hab es so versucht, nur ist das Ergebniss ein Array mit lauter 0len.
for ($i=0;$i <= $counter; $i++)
{
ergebniss[$i] = (($zahlenkette1[$i])*($zahlenkette2[$i]));
}
Hoffe jemand weis Rat.
Gruss Bl00dy
Antwort schreiben
Antwort 1 von rabies vom 06.05.2020, 22:02 Options
Moin.
Folgendes sollte Deine Aufgabe erledigen:
function multiplicate($n1, $n2) {
return $n1 * $n2;
}
$numbers_1 = array(1, 2, 3, 4, 5, 6, 7);
$numbers_2 = array(1, 2, 3, 4, 5, 6, 7);
$numbers_product = array_map("multiplicate", $numbers_1, $numbers_2);
print_r($numbers_product);
Die Funktion
array_map ruft für jedes Element in $numbers_1 und $numbers_2 die Funktion "multiplicate" auf. Diese liefert das Produkt aus $n1 und $n2 an $numbers_product zurück, welches schlussendlich sämtliche Produkte speichert.
--rabies.
Antwort 2 von rabies vom 07.05.2020, 00:19 Options
Mein Englisch lässt wirklich zu wünschen übrig. Multiply wäre natürlich schöner gewesen, als ein gedachtes "multiplicate".
Asche auf mein Haupt,
--rabies.
Antwort 3 von bl00dy vom 07.05.2020, 07:28 Options
Danke rabies
Eine ziemlich nette Lösung.
Danke funktioniert jetzt wie ich es brauche :).
Gruss bl00dy
Antwort 4 von bl00dy vom 08.05.2020, 16:55 Options
Hallo Zusammen, nochmal ich
Wie geschrieben funktioniert die Lösung von rabies.
Doch nun stehe ich vor dem Problem, dass ich ein Array habe das folgendermassen aussieht:
Array([0] =>Array([schlüssel1] =>1[schlüssel2]=>4) ... und so weiter.
Nun will ich wie schon oben statt 2 verschiedenen Arrays die beiden "schlüssel" Arrays mit einander multiplizieren.
leider Funktioniert:
function multiplicate($n1, $n2) {
return $n1 * $n2;
}
$numbers_1 = array(1, 2, 3, 4, 5, 6, 7);
$numbers_2 = array(1, 2, 3, 4, 5, 6, 7);
$numbers_product = array_map("multiplicate", $numbers[schlüssel1, $numbers[schlüssel2);
print_r($numbers_product);
nicht...
Auf http://de.php.net/array habe ich keine Lösung gefunden wie ich z.b. die Schlüssel Arrays in einzelne Arrays umwandle oder wie ich diese Problem lösen kann.
Bin für alle Antworten dankbar.
Danke und Gruss Bl00dy
Antwort 5 von rabies vom 09.05.2020, 11:18 Options
function multiply($n) {
return reset($n) * end($n);
// oder auch moeglich:
// return $n['schlussel1'] * $n['schluessel2'];
}
$numbers = array(
array('schluessel1' => 1, 'schluessel2' => 2),
array('schluessel1' => 3, 'schluessel2' => 4),
array('schluessel1' => 5, 'schluessel2' => 6),
array('schluessel1' => 7, 'schluessel2' => 8)
);
$numbers_product = array_map("multiply", $numbers);
reset setzt den internen Zeiger des Arrays auf sein erstes Element, end, man glaube es kaum, auf das letzte Element. So wird das erste und letzte Element von $n, was wiederum einer der Arrays aus $numbers ist, miteinander multipliziert.
--rabies.