This is my JSON data:
{
"1": "apple",
"2": "banana",
"3": "orange"
...
}
I am trying to loop through and pair the values in the following way:
["apple","banana"] // [1,2] ["banana","orange"] // [2,3] ...
So far I have tried this. It loops thru 2 times and only gives me [1,2] pair result.
$k = 1;
for($i = 1; $i < count($jsonData); ++$i) {
$pair = [$jsonData[$i], $jsonData[$k + 1]];
$pairs += $pair;
$k++;
}
Result: ["apple","banana"]
Note that array can be any size but cannot less or equal to 1. How could I accomplish this in PHP?
Thank you!
Advertisement
Answer
Replace $pairs += $pair; with $pairs[] = $pair;.
Because + for arrays just skips keys that are already in array. And these keys are 0 and 1 which appear after the first iteration of your for loop.
As @Nick stated – $k is redundant. So your code can be:
$pairs = [];
for($i = 1; $i < count($jsonData); ++$i) {
$pair = [$jsonData[$i], $jsonData[$i + 1]];
$pairs[] = $pair;
}
print_r($pairs);
Fiddle here.