PHP - Ensure array has certain number of items











up vote
2
down vote

favorite












I have a PHP array which looks like this...



array
(
[0] => apple,
[1] => orange,
)


I need to ensure the array contains 4 items, so in the instance above I want to end up with this...



array
(
[0] => apple,
[1] => orange,
[2} => ,
[3] => ,
)


Am I best looping through this with a counter and creating a new array, or is there a better method?










share|improve this question


















  • 9




    php.net/manual/en/function.array-pad.php
    – iainn
    Nov 19 at 15:28






  • 1




    Possible duplicate of In php how do I set the size of an array?
    – CD001
    Nov 19 at 15:29















up vote
2
down vote

favorite












I have a PHP array which looks like this...



array
(
[0] => apple,
[1] => orange,
)


I need to ensure the array contains 4 items, so in the instance above I want to end up with this...



array
(
[0] => apple,
[1] => orange,
[2} => ,
[3] => ,
)


Am I best looping through this with a counter and creating a new array, or is there a better method?










share|improve this question


















  • 9




    php.net/manual/en/function.array-pad.php
    – iainn
    Nov 19 at 15:28






  • 1




    Possible duplicate of In php how do I set the size of an array?
    – CD001
    Nov 19 at 15:29













up vote
2
down vote

favorite









up vote
2
down vote

favorite











I have a PHP array which looks like this...



array
(
[0] => apple,
[1] => orange,
)


I need to ensure the array contains 4 items, so in the instance above I want to end up with this...



array
(
[0] => apple,
[1] => orange,
[2} => ,
[3] => ,
)


Am I best looping through this with a counter and creating a new array, or is there a better method?










share|improve this question













I have a PHP array which looks like this...



array
(
[0] => apple,
[1] => orange,
)


I need to ensure the array contains 4 items, so in the instance above I want to end up with this...



array
(
[0] => apple,
[1] => orange,
[2} => ,
[3] => ,
)


Am I best looping through this with a counter and creating a new array, or is there a better method?







php arrays






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 19 at 15:27









fightstarr20

2,7091148104




2,7091148104








  • 9




    php.net/manual/en/function.array-pad.php
    – iainn
    Nov 19 at 15:28






  • 1




    Possible duplicate of In php how do I set the size of an array?
    – CD001
    Nov 19 at 15:29














  • 9




    php.net/manual/en/function.array-pad.php
    – iainn
    Nov 19 at 15:28






  • 1




    Possible duplicate of In php how do I set the size of an array?
    – CD001
    Nov 19 at 15:29








9




9




php.net/manual/en/function.array-pad.php
– iainn
Nov 19 at 15:28




php.net/manual/en/function.array-pad.php
– iainn
Nov 19 at 15:28




1




1




Possible duplicate of In php how do I set the size of an array?
– CD001
Nov 19 at 15:29




Possible duplicate of In php how do I set the size of an array?
– CD001
Nov 19 at 15:29












3 Answers
3






active

oldest

votes

















up vote
6
down vote



accepted










Pad your array with elements to a size that you need:



$my_arr = [1,2];
$my_arr = array_pad($my_arr, 4, '');





share|improve this answer





















  • Would this work if I don't know the number of elements in the array?
    – fightstarr20
    Nov 19 at 15:33










  • Why not? You pad array to required size. Number of required elements will be counted as required size minus current size.
    – u_mulder
    Nov 19 at 15:34






  • 1




    @fightstarr20 Yes. According to the docs - "...if the absolute value of size is less than or equal to the array length, no padding takes place." so it won't affect your array if the array already exceeds 4 elements. It will only pad arrays with length 4 - count($my_arr) >= 1...
    – War10ck
    Nov 19 at 15:35












  • This works perfectly, thank you. Reading up on array_pad now
    – fightstarr20
    Nov 19 at 15:36


















up vote
1
down vote













This should do what you're after



$iNumberOfElements = 5;

$a = array('apple', 'orange');

if(count($a) < $iNumberOfElements){
while (count($a) < $iNumberOfElements) {
$a = "";
}
}

var_dump($a);
exit;





share|improve this answer




























    up vote
    1
    down vote













    as @iainn said: php.net/manual/en/function.array-pad.php



    there is this function:



    $input = array(12, 10, 9);

    $result = array_pad($input, 5, 0);
    // result is array(12, 10, 9, 0, 0)


    5 is the size of your array, 0 is the default value to empty cells






    share|improve this answer





















      Your Answer






      StackExchange.ifUsing("editor", function () {
      StackExchange.using("externalEditor", function () {
      StackExchange.using("snippets", function () {
      StackExchange.snippets.init();
      });
      });
      }, "code-snippets");

      StackExchange.ready(function() {
      var channelOptions = {
      tags: "".split(" "),
      id: "1"
      };
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function() {
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled) {
      StackExchange.using("snippets", function() {
      createEditor();
      });
      }
      else {
      createEditor();
      }
      });

      function createEditor() {
      StackExchange.prepareEditor({
      heartbeatType: 'answer',
      convertImagesToLinks: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      imageUploader: {
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      },
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      });


      }
      });














      draft saved

      draft discarded


















      StackExchange.ready(
      function () {
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53377823%2fphp-ensure-array-has-certain-number-of-items%23new-answer', 'question_page');
      }
      );

      Post as a guest















      Required, but never shown

























      3 Answers
      3






      active

      oldest

      votes








      3 Answers
      3






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes








      up vote
      6
      down vote



      accepted










      Pad your array with elements to a size that you need:



      $my_arr = [1,2];
      $my_arr = array_pad($my_arr, 4, '');





      share|improve this answer





















      • Would this work if I don't know the number of elements in the array?
        – fightstarr20
        Nov 19 at 15:33










      • Why not? You pad array to required size. Number of required elements will be counted as required size minus current size.
        – u_mulder
        Nov 19 at 15:34






      • 1




        @fightstarr20 Yes. According to the docs - "...if the absolute value of size is less than or equal to the array length, no padding takes place." so it won't affect your array if the array already exceeds 4 elements. It will only pad arrays with length 4 - count($my_arr) >= 1...
        – War10ck
        Nov 19 at 15:35












      • This works perfectly, thank you. Reading up on array_pad now
        – fightstarr20
        Nov 19 at 15:36















      up vote
      6
      down vote



      accepted










      Pad your array with elements to a size that you need:



      $my_arr = [1,2];
      $my_arr = array_pad($my_arr, 4, '');





      share|improve this answer





















      • Would this work if I don't know the number of elements in the array?
        – fightstarr20
        Nov 19 at 15:33










      • Why not? You pad array to required size. Number of required elements will be counted as required size minus current size.
        – u_mulder
        Nov 19 at 15:34






      • 1




        @fightstarr20 Yes. According to the docs - "...if the absolute value of size is less than or equal to the array length, no padding takes place." so it won't affect your array if the array already exceeds 4 elements. It will only pad arrays with length 4 - count($my_arr) >= 1...
        – War10ck
        Nov 19 at 15:35












      • This works perfectly, thank you. Reading up on array_pad now
        – fightstarr20
        Nov 19 at 15:36













      up vote
      6
      down vote



      accepted







      up vote
      6
      down vote



      accepted






      Pad your array with elements to a size that you need:



      $my_arr = [1,2];
      $my_arr = array_pad($my_arr, 4, '');





      share|improve this answer












      Pad your array with elements to a size that you need:



      $my_arr = [1,2];
      $my_arr = array_pad($my_arr, 4, '');






      share|improve this answer












      share|improve this answer



      share|improve this answer










      answered Nov 19 at 15:32









      u_mulder

      34.6k52845




      34.6k52845












      • Would this work if I don't know the number of elements in the array?
        – fightstarr20
        Nov 19 at 15:33










      • Why not? You pad array to required size. Number of required elements will be counted as required size minus current size.
        – u_mulder
        Nov 19 at 15:34






      • 1




        @fightstarr20 Yes. According to the docs - "...if the absolute value of size is less than or equal to the array length, no padding takes place." so it won't affect your array if the array already exceeds 4 elements. It will only pad arrays with length 4 - count($my_arr) >= 1...
        – War10ck
        Nov 19 at 15:35












      • This works perfectly, thank you. Reading up on array_pad now
        – fightstarr20
        Nov 19 at 15:36


















      • Would this work if I don't know the number of elements in the array?
        – fightstarr20
        Nov 19 at 15:33










      • Why not? You pad array to required size. Number of required elements will be counted as required size minus current size.
        – u_mulder
        Nov 19 at 15:34






      • 1




        @fightstarr20 Yes. According to the docs - "...if the absolute value of size is less than or equal to the array length, no padding takes place." so it won't affect your array if the array already exceeds 4 elements. It will only pad arrays with length 4 - count($my_arr) >= 1...
        – War10ck
        Nov 19 at 15:35












      • This works perfectly, thank you. Reading up on array_pad now
        – fightstarr20
        Nov 19 at 15:36
















      Would this work if I don't know the number of elements in the array?
      – fightstarr20
      Nov 19 at 15:33




      Would this work if I don't know the number of elements in the array?
      – fightstarr20
      Nov 19 at 15:33












      Why not? You pad array to required size. Number of required elements will be counted as required size minus current size.
      – u_mulder
      Nov 19 at 15:34




      Why not? You pad array to required size. Number of required elements will be counted as required size minus current size.
      – u_mulder
      Nov 19 at 15:34




      1




      1




      @fightstarr20 Yes. According to the docs - "...if the absolute value of size is less than or equal to the array length, no padding takes place." so it won't affect your array if the array already exceeds 4 elements. It will only pad arrays with length 4 - count($my_arr) >= 1...
      – War10ck
      Nov 19 at 15:35






      @fightstarr20 Yes. According to the docs - "...if the absolute value of size is less than or equal to the array length, no padding takes place." so it won't affect your array if the array already exceeds 4 elements. It will only pad arrays with length 4 - count($my_arr) >= 1...
      – War10ck
      Nov 19 at 15:35














      This works perfectly, thank you. Reading up on array_pad now
      – fightstarr20
      Nov 19 at 15:36




      This works perfectly, thank you. Reading up on array_pad now
      – fightstarr20
      Nov 19 at 15:36












      up vote
      1
      down vote













      This should do what you're after



      $iNumberOfElements = 5;

      $a = array('apple', 'orange');

      if(count($a) < $iNumberOfElements){
      while (count($a) < $iNumberOfElements) {
      $a = "";
      }
      }

      var_dump($a);
      exit;





      share|improve this answer

























        up vote
        1
        down vote













        This should do what you're after



        $iNumberOfElements = 5;

        $a = array('apple', 'orange');

        if(count($a) < $iNumberOfElements){
        while (count($a) < $iNumberOfElements) {
        $a = "";
        }
        }

        var_dump($a);
        exit;





        share|improve this answer























          up vote
          1
          down vote










          up vote
          1
          down vote









          This should do what you're after



          $iNumberOfElements = 5;

          $a = array('apple', 'orange');

          if(count($a) < $iNumberOfElements){
          while (count($a) < $iNumberOfElements) {
          $a = "";
          }
          }

          var_dump($a);
          exit;





          share|improve this answer












          This should do what you're after



          $iNumberOfElements = 5;

          $a = array('apple', 'orange');

          if(count($a) < $iNumberOfElements){
          while (count($a) < $iNumberOfElements) {
          $a = "";
          }
          }

          var_dump($a);
          exit;






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 19 at 15:31









          atoms

          1,77411021




          1,77411021






















              up vote
              1
              down vote













              as @iainn said: php.net/manual/en/function.array-pad.php



              there is this function:



              $input = array(12, 10, 9);

              $result = array_pad($input, 5, 0);
              // result is array(12, 10, 9, 0, 0)


              5 is the size of your array, 0 is the default value to empty cells






              share|improve this answer

























                up vote
                1
                down vote













                as @iainn said: php.net/manual/en/function.array-pad.php



                there is this function:



                $input = array(12, 10, 9);

                $result = array_pad($input, 5, 0);
                // result is array(12, 10, 9, 0, 0)


                5 is the size of your array, 0 is the default value to empty cells






                share|improve this answer























                  up vote
                  1
                  down vote










                  up vote
                  1
                  down vote









                  as @iainn said: php.net/manual/en/function.array-pad.php



                  there is this function:



                  $input = array(12, 10, 9);

                  $result = array_pad($input, 5, 0);
                  // result is array(12, 10, 9, 0, 0)


                  5 is the size of your array, 0 is the default value to empty cells






                  share|improve this answer












                  as @iainn said: php.net/manual/en/function.array-pad.php



                  there is this function:



                  $input = array(12, 10, 9);

                  $result = array_pad($input, 5, 0);
                  // result is array(12, 10, 9, 0, 0)


                  5 is the size of your array, 0 is the default value to empty cells







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Nov 19 at 15:33









                  Florent Cardot

                  182110




                  182110






























                      draft saved

                      draft discarded




















































                      Thanks for contributing an answer to Stack Overflow!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid



                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.


                      To learn more, see our tips on writing great answers.





                      Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                      Please pay close attention to the following guidance:


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid



                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.


                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function () {
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53377823%2fphp-ensure-array-has-certain-number-of-items%23new-answer', 'question_page');
                      }
                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      Costa Masnaga

                      Fotorealismo

                      Sidney Franklin