I'm trying to finish up a URL router that I created for my custom MVC framework. I have a list of parameters that I dissected from the URL, but the problem is that they only have numerical keys. What I want to do is set it up so the first value in the $params array will be the KEY and then the second value in the array is the VALUE of the first KEY. But I need to take it beyond that even further. Essentially, I need all odd number key's value in the array to be the new KEY and the even number key's value to be the value.
Example:
This is how it's CURRENTLY set up:
Array
(
[0] => greeting
[1] => hello
[2] => question
[3] => how-are-you
[4] => response
[5] => im-fine
)
This is how it NEEDS to be (after conversion):
Array
(
[greeting] => hello
[question] => how-are-you
[response] => im-fine
)
Would it be easier to create this type of array when I explode the string by the '/' delimiter when I'm taking it out of the URL string? If so, what would be the best function for that?
It's probably a simple solution, because I'm sure this is a common issue, but any enlightenment?
Maybe use array_splice()
for that?
$result = array();
while (count($urls)) {
list($key,$value) = array_splice($urls, 0, 2);
$result[$key] = $value;
}
This will extract the first two entries from the URL list and use those as key and value for the resulting array. Repeats, until the source list is empty.
Something like:
$data = array (
'greeting',
'hello',
'question',
'how-are-you',
'response',
'im-fine',
);
$new = array();
for ($i = 0, $lim = sizeof($data); $i < $lim; $i += 2) {
$new[$data[$i]] = isset($data[$i + 1]) ? $data[$i + 1] : null;
}
print_r($new);
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