简体   繁体   中英

Create multi-dimensional array,

I have code like this

$assoc = ['name','lastname','pesel'];
          $inputs = ['a', 'a', 'a', 'a', 'b', 'b', 'b', 'b',];
          $counter = 0;
          $internalcounter = 0;
          $zero = 0;
          $content = array();
          while ($counter < sizeof($inputs))
          {
              if($internalcounter == sizeof($assoc))
              {
                  $counter++;
                  $internalcounter = 0;


              }
              else
              {
                  array_push($content, $inputs[$counter]);
                  $counter++;
                  $internalcounter++;
              }


          }
          var_dump($content);

It created array who looks

`array(6) { [0] => string(1) "a" [1] => string(1) "a" [2] => string(1) "a" [3] => string(1) "b" [4] => string(1) "b" [5] => string(1) "b" }` 

But I want create multi-dimensional array

Array ( [0] => Array ( [0] => "a"  [1] => "a"  [2] => "a"  ) [1] => Array ( [0] => "b" [1] => "b" [2] => "b" )  )

How to add next array in $content ?

Alternative solution :

$assoc = ['name', 'lastname', 'pesel'];
$inputs = ['a', 'a', 'a', 'a', 'b', 'b', 'b', 'b'];
$content = array();
$i = 0;
foreach ($inputs as $key => $val) {
    $key += 1;
    if (($key < (sizeof($inputs)))) {
        if (($key % (sizeof($assoc) + 1) == 0)) {
            $content[++$i] = array();
        } else {
            $content[$i][] = $val;
        }
    }
}
var_dump($content);
<?php

$assoc = ['name','lastname','pesel'];
$inputs = ['a', 'a', 'a', 'a', 'b', 'b', 'b', 'b'];
$counter = 0;
$internalcounter = 0;
$zero = 0;
$arrayIndex = 0;
$content = array();
$content[$arrayIndex] = array();

while ($counter < sizeof($inputs))
{
    if ($internalcounter == sizeof($assoc))
    {
        $counter++;
        $internalcounter = 0;

        if ($counter < sizeof($inputs))
            $content[++$arrayIndex] = array();
    }
    else
    {
        array_push($content[$arrayIndex], $inputs[$counter]);
        $counter++;
        $internalcounter++;
    }
}
var_dump($content);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM