Convert associative array into indexed

后端 未结 2 1468
栀梦
栀梦 2021-01-01 11:03

Ive seen a few examples by using array_values, but cant quite make out how to get it to work...

I have an associative array thats passed via POST, I need to convert

2条回答
  •  野趣味
    野趣味 (楼主)
    2021-01-01 11:38

    Observe this amazing way to convert your $_POST into a numerically indexed array:

    $numerical = array_values($_POST);
    


    but what if you want to preserve your keys? Perhaps you want something like this?

    $numerical = array();
    $sep = ':';
    
    foreach($_POST as $k=>$v)
    {
      $numerical[] = $k.$sep.$v;
    }
    

    $numerical will then have:

    Array
    (
        [0] => fieldnames:36771X21X198|36771X21X199|36771X21X200|36771X21X201|36771X21X202
        [1] => 36771X21X198:3434343
        [2] => display36771X21X198:on
        [3] => 36771X21X199:5656565
        [4] => display36771X21X199:on
        [5] => 36771X21X200:89898989
        [6] => display36771X21X200:on
        [7] => 36771X21X201:90909090
        [8] => display36771X21X201:on
        [9] => 36771X21X202:12121212
        [10] => display36771X21X202:on
        [11] => move:movesubmit
        [12] => move2:ONLINE Submit
        [13] => thisstep:1
        [14] => sid:36771
        [15] => token:1234567890
    )
    


    or, for my final example:

    $fieldnames_original = explode('|', $_POST['fieldnames']);
    $fieldnames_actual = array();
    $values = array();
    
    foreach($_POST as $k=>$v)
    {
      if($k!='fieldnames')
      {
        $fieldnames_actual[] = $k;
        $values[] = $v;
      }
    }
    

    which will set 3 arrays:

    $fieldnames_original:

    Array
    (
        [0] => 36771X21X198
        [1] => 36771X21X199
        [2] => 36771X21X200
        [3] => 36771X21X201
        [4] => 36771X21X202
    )
    

    $fieldnames_actual:

    Array
    (
        [0] => 36771X21X198
        [1] => display36771X21X198
        [2] => 36771X21X199
        [3] => display36771X21X199
        [4] => 36771X21X200
        [5] => display36771X21X200
        [6] => 36771X21X201
        [7] => display36771X21X201
        [8] => 36771X21X202
        [9] => display36771X21X202
        [10] => move
        [11] => move2
        [12] => thisstep
        [13] => sid
        [14] => token
    )
    

    and $values:

    Array
    (
        [0] => 3434343
        [1] => on
        [2] => 5656565
        [3] => on
        [4] => 89898989
        [5] => on
        [6] => 90909090
        [7] => on
        [8] => 12121212
        [9] => on
        [10] => movesubmit
        [11] => ONLINE Submit
        [12] => 1
        [13] => 36771
        [14] => 1234567890
    )
    

提交回复
热议问题