This is my JSON data:
JavaScript
x
{
"1": "apple",
"2": "banana",
"3": "orange"
}
I am trying to loop through and pair the values in the following way:
JavaScript
["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.
JavaScript
$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:
JavaScript
$pairs = [];
for($i = 1; $i < count($jsonData); ++$i) {
$pair = [$jsonData[$i], $jsonData[$i + 1]];
$pairs[] = $pair;
}
print_r($pairs);
Fiddle here.