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 it into a indexed array...
My print_r($_POST) gives me this... I need all of this put into an indexed array :)
Array ( [fieldnames] => 36771X21X198|36771X21X199|36771X21X200|36771X21X201|36771X21X202 [36771X21X198] => 3434343 [display36771X21X198] => on [36771X21X199] => 5656565 [display36771X21X199] => on [36771X21X200] => 89898989 [display36771X21X200] => on [36771X21X201] => 90909090 [display36771X21X201] => on [36771X21X202] => 12121212 [display36771X21X202] => on [move] => movesubmit [move2] => ONLINE Submit [thisstep] => 1 [sid] => 36771 [token] => 1234567890 )
Your code is the exact equivalent of: $assoc = array_fill_keys(array(1, 2, 3, 4, 5), 1); // or $assoc = array_fill_keys(range(1, 5), 1);
in_array() function is utilized to determine if specific value exists in an array. It works fine for one dimensional numeric and associative arrays.
Associative arrays differ from normal, fixed-size arrays in that they have no predefined limit on the number of elements, the elements can be indexed by any tuple as opposed to just using integers as keys, and the elements are not stored in preallocated consecutive storage locations.
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 )
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With