在关联数组内的指定索引处插入简单数组

I want to make array like below :

array(

 0 => array (   0 => array (q,a,alt),
                1 => array (q,a,alt),
                2 => array (q,a,alt)
            ),

 1 => array (   0 => array (q,a,alt),
                1 => array (q,a,alt),
                2 => array (q,a,alt)
            ),

 2 => array (   0 => array (q,a,alt),
                1 => array (q,a,alt),
                2 => array (q,a,alt)
            )

  );

I have gone through all over I couldn't get solution anywhere. Below is my code :

<?php 

$mainArray = array();

$ans = array('q', 'a', 'att');

for($i = 0; $i < 3; $i++) {
    $mainArray[$i] = array();

    for($j = 0; $j < 3; $j++) {
        $mainArray[$i][$j] = array('q','a','att');
    }
}

print_r($mainArray);

?>

What I get is something wrong.

Below is my output :

Array ( [0] => Array ( [0] => Array ( [0] => q [1] => a [2] => att ) [1] => Array ( [0] => q [1] => a [2] => att ) [2] => Array ( [0] => q [1] => a [2] => att ) ) [1] => Array ( [0] => Array ( [0] => q [1] => a [2] => att ) [1] => Array ( [0] => q [1] => a [2] => att ) [2] => Array ( [0] => q [1] => a [2] => att ) ) [2] => Array ( [0] => Array ( [0] => q [1] => a [2] => att ) [1] => Array ( [0] => q [1] => a [2] => att ) [2] => Array ( [0] => q [1] => a [2] => att ) ) ) 

It's actually much easier than you think.

PHP has a function called array_fill which will create an array 'from key' to 'number of items' with 'value'.

$ans = array('q', 'a', 'att');
$no = 3;

$arr = array_fill(0, $no, $ans);
var_dump($arr);

Output:

array(3) {
  [0]=>
  array(3) {
    [0]=>
    string(1) "q"
    [1]=>
    string(1) "a"
    [2]=>
    string(3) "att"
  }
  [1]=>
  array(3) {
    [0]=>
    string(1) "q"
    [1]=>
    string(1) "a"
    [2]=>
    string(3) "att"
  }
  [2]=>
  array(3) {
    [0]=>
    string(1) "q"
    [1]=>
    string(1) "a"
    [2]=>
    string(3) "att"
  }
}

https://3v4l.org/abRfp