Reputation: 8058
I have this set of data that I get from html
form. It is basically a multidimensional array.
Data
array(3) {
["r1"]=>
array(2) {
[0]=>
string(1) "2"
[1]=>
string(1) "4"
}
["r2"]=>
array(2) {
[0]=>
string(1) "5"
[1]=>
string(2) "96"
}
["tekma_id"]=>
array(2) {
[0]=>
string(1) "7"
[1]=>
string(1) "8"
}
}
Problem: What i want to do, is to go over this array and for each iteration create a data variable(array
).
So for example:
First iteration:
$data = array(
'r1' => '2'
'r2' => '5'
'tekma_id' => '7'
)
Second iteration:
$data = array(
'r1' => '4'
'r2' => '96'
'tekma_id' => '8'
)
I've tried with this:
foreach ($data as $key => $value) {
foreach ($value as $index => $v) {
echo "<br>";
echo "r1: $v";
echo "<br>";
echo "r2: $v";
echo "<br>";
echo "tekma_id: $v";
}
}
But it didn't work. Sorry for my bad english and thanks for any help. Cheers!
Upvotes: 1
Views: 35307
Reputation: 5151
How about this?
$array = array(
'r1' => array(2, 4),
'r2' => array(5, 96),
'tekma_id' => array(7, 8));
$keys = array_keys($data);
$iterations = count($array[$keys[0]]);
for($i = 0; $i < $iterations; $i++) {
$data = array();
foreach($array as $key => $value) {
$data[$key] = $value[$i];
}
print_r($data);
}
Output:
Array
(
[r1] => 2
[r2] => 5
[tekma_id] => 7
)
Array
(
[r1] => 4
[r2] => 96
[tekma_id] => 8
)
Upvotes: 6
Reputation: 86
Try this:
$keys = array_keys($data);
$count = count(array_shift(array_values($data)));
for ($i = 0; $i<$count; $i++) {
$result = array();
foreach ($keys as $key) {
$result[$key] = $data[$key][$i];
}
var_dump($result);
}
Upvotes: 2