Open In App

How to take user input for two dimensional (2D) array in PHP ?

Last Updated : 28 Apr, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

There are two methods to take user input in PHP in two dimensional (2D) array.

Approach 1: 

  • Use HTML forms through PHP GET & POST method to take user input in two dimensional (2D) array.
  • First, input data into HTML forms.
  • Then use the GET or POST method of PHP to get or post those input data into a variable.
  • Finally, use that variable that holds input data and process using for loop.
  • Though it is from a two-dimensional array so, you need two indices/variables for processing in for loop.
  • Enter input one below another to state as two variables.

Example 1: Below example illustrate how to input user data for 2D-array using the Form POST method.

php




<?php
 
echo "Enter n for nxn : <br>";
echo "<form method='POST'>
    Row:<input type='number' min='2'
            max='5' name='1d' value='1'/>
    Column:<input type='number' min='2'
            max='5' name='2d' value='1'/>
    <input type='submit' name='submit'
            value='Submit'/>
</form>";
 
// Submit user input data for 2D array
if (isset($_POST['submit'])) {
     
    // POST submitted data
    $dimention1 = $_POST["1d"];
     
    // POST submitted data
    $dimention2 = $_POST["2d"];
     
    echo "Entered 2d nxn: " . $dimention1
            . "x" . $dimention2 . " <br>";
    $d = [];
    $k = 0;
     
    for($row = 0; $row < $dimention1; $row++) {
        for ($col = 0; $col < $dimention2; $col++) {
            $d[$row][$col]= $k++;
        }
    }
     
    for ($row = 0; $row < $dimention1; $row++) {
        for ($col = 0; $col < $dimention2; $col++) {
            echo $d[$row][$col]." ";
        }
        echo "<br>";
    }
}
?>


Output: 

Approach 2: 

  • To take user input in PHP for two dimensional (2D) by using fopen() function which helps to get user input either at runtime or by the external input file.
  • First, assign those input data to variables.
  • Finally, use those variables which hold input data and process using for loop.
  • Though it is from a two-dimensional array so, you need two indices/variables for processing in for loop.

Example: Below example illustrates how to input user data for a 2D array using fopen() function. 

php




<?php
 
// fopen() using standard input
$stdin = fopen('php://stdin', 'r');
?>
<?php
error_reporting(0);
echo "\n\n\nEnter row and column: \n";
 
// Right trim fgets(user input)
$dimention1 = rtrim(fgets($stdin));
 
// Right trim fgets(user input)
$dimention2 = rtrim(fgets($stdin));
 
echo "Entered row and column: " .
    $dimention1 . "x" . $dimention1 . " \n";
 
$d = [];
$k = 0;
 
for ($row = 0; $row < $dimention1; $row++) {
    for ($col = 0; $col < $dimention2; $col++) {
        $d[$row][$col]= $k++;
    }
}
 
for ($row = 0; $row < $dimention1; $row++) {
    for ($col = 0; $col < $dimention2; $col++) {
        echo $d[$row][$col]." ";
    }
    echo "\n";
}
 
?>


Output: 

Reference: https://www.geeksforgeeks.org/php-fopen-function-open-file-or-url/ 



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads