I have an array of numbers:
[Note: $arrNum is dynamic. It’s created using rand(). So every time the values will be different. It’s not fixed values.]
$arrNum = [2, 5, 6, 6, 8];
Now there’ll will be an associative array named $arrNumDouble. The key of $arrNumDouble is the value of $arrNum and the value corresponding to the key is the double of the key.
$arrNumDouble = [];
for ($i=0; $i < sizeof($arrNum); $i++) {
if (array_key_exists($arrNum[$i], $arrNumDouble)) {
//repeated values in the $arrNum array, the
//key in the $arrNumDouble array is
//supplemented with a letter, e.g. “A”
$arrNumDouble[$arrNum[$i]."A"] = $arrNum[$i] * 2;
} else {
$arrNumDouble[$arrNum[$i]] = $arrNum[$i] * 2;
}
};
Now $arrNumDouble becomes:
$arrNumDouble = array
(
[2] => 4,
[5] => 10,
[6] => 12,
[6A] => 12,
[8] => 16
)
From this $arrNumDouble I can easily display on screen like this:
<?php foreach($arrNumDouble as $key => $value): ?>
<tr>
<td><?php echo $key; ?></td>
<td><?php echo $value; ?></td>
</tr>
<?php endforeach; ?>
Num Double
2 4
5 10
6 12
6A 12
8 16
But how can I display like this:
Num Double 2 4 5 10 6 12 6 12 //without letter A 8 16
Advertisement
Answer
You can store results as array of arrays as approach:
<?php
$arrNum = [2, 5, 6, 6, 8];
$arrNumDouble = array_map(
function($el) {
return [$el, 2*$el];
},
$arrNum
);
#var_export($arrNumDouble);
foreach($arrNumDouble as $el) {
echo "2 * $el[0] = $el[1]" . PHP_EOL;
}