- var_dump: documentation ( source)
- strrev: documentation ( source)
<?php
function stringMultiplicate($first, $second) {
// Create array include result of 1 number in $second string * first
$result = [];
$strFirst = (string)$first;
$strSecond = (string)$second;
$maxLength = 0;
for ($i = strlen($strSecond) - 1; $i >= 0; $i--) {
$index = $i;
$number = (int)$strSecond[$i];
$result[$index] = '';
$k = strlen($strSecond) - 1 - $i;
$div = 0;
for ($j = (strlen($strFirst) - 1); $j >= 0; $j--) {
while ($k != 0) {
$result[$index] .= '0';
$k--;
}
$next = ($number * $strFirst[$j] + $div);
if (strlen($next) > 1 && $j != 0) {
$result[$index] .= ((string)$next)[strlen($next) - 1];
$div = ((string)$next)[0];
} else {
$result[$index] .= $number * $strFirst[$j] + $div;
$div = 0;
}
}
if (strlen($result[$index]) > $maxLength) {
$maxLength = $result[$index];
}
$result[$index] = strrev($result[$index]);
}
$multi = [];
for ($j = 0; $j < $maxLength; $j++) {
$sum = 0;
for ($i = 0; $i < count($result); $i++) {
var_dump($result[$i]);
if (!isset($result[$i][$j])) {
$result[$i][$j] = 0;
}
$sum += (int)$result[$i][$j];
}
$multi[$i] = $sum;
}
return $multi;
}
var_dump(stringMultiplicate(12345, 123));
var_dump(12345*123);