w3resource

PHP Exercises: Find the customer number that has traded for the second consecutive for the second consecutive month from last month and the number of transactions

PHP: Exercise-70 with Solution

Record section of ABC company records the customer number and the trading date for each month. Write a PHP program to find the customer number that has traded for the second consecutive for the second consecutive month from last month and the number of transactions.
The data of this month and the data of last month are separated by a blank line of one line and given.
Transaction format:
c1 , d1
c2 , d2
...
...
ci (1 ≤ ci ≤ 1,000) is an integer represents the customer number, di (1 ≤ di ≤ 31) is an integer represents the trading date.

Sample Solution:

PHP Code:

<?php
// Initialize an array to store the count of transactions for each customer
$x = array();

// Read input until an empty line is encountered
while (true) {
    // Read a line of input and remove trailing whitespaces
    $a = rtrim(fgets(STDIN));

    // Break the loop if an empty line is encountered
    if ($a === '') {
        break;
    }

    // Split the input line into customer number and transaction amount
    list($n, $d) = explode(',', $a);

    // Initialize the transaction count for a customer if not set
    if (!isset($x[$n])) {
        $x[$n] = 0;
    }

    // Increment the transaction count for the customer
    $x[$n]++;
}

// Initialize an array to store the updated transaction count for each customer
$y = array();

// Read input until an empty line is encountered
while (true) {
    // Read a line of input and remove trailing whitespaces
    $a = rtrim(fgets(STDIN));

    // Break the loop if an empty line is encountered
    if ($a === '') {
        break;
    }

    // Split the input line into customer number and transaction amount
    list($n, $d) = explode(',', $a);

    // Skip if the customer number is not present in the original transactions
    if (!isset($x[$n])) {
        continue;
    }

    // Initialize the updated transaction count for a customer if not set
    if (!isset($y[$n])) {
        $y[$n] = $x[$n];
    }

    // Increment the updated transaction count for the customer
    $y[$n]++;
}

// Output customer number and the number of transactions in ascending order
echo "Customer number and the number of transactions:\n";
ksort($y);
foreach ($y as $k => $v) {
    echo sprintf('%d %d', $k, $v) . PHP_EOL;
}

?>

Sample Input:
125,10
55,12
34,14

125,3
55,4
125,5

Sample Output:

Customer number and the number of transactions:
55 2
125 3

Flowchart:

Flowchart: Find the customer number that has traded for the second consecutive for the second consecutive month from last month and the number of transactions.

PHP Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Write a PHP program to sum of all numerical values embedded in a sentence.
Next: Write a PHP program to read the mass data and find the number of islands.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.