$arr = array(
0 => array(
0 => 'one',
1 => 'two',
2 => 'three'
),
1 => array(
0 => 'sun',
1 => 'mon',
2 => 'tues'
),
2 => array(
0 => 'jan',
1 => 'feb',
2 => 'march'
)
);
This is array, I want to result like this. An array has a sub-array and wants to change the value of subarray.
$arr = array(
0 => array(
0 => 'one',
1 => 'sun',
2 => 'jan'
),
1 => array(
0 => 'two',
1 => 'mon',
2 => 'feb'
),
2 => array(
0 => 'three',
1 => 'tues',
2 => 'march'
)
);
please provide me the solution. Thanks in advance!
Try with this loop to handle your requirement
output
Array ( [0] => Array ( [0] => one [1] => sun [2] => jan ) [1] => Array ( [0] => two [1] => mon [2] => feb ) [2] => Array ( [0] => three [1] => tues [2] => march ) )
CODE
<?php
$arr = array(
0 => array(
0 => 'one',
1 => 'two',
2 => 'three'
),
1 => array(
0 => 'sun',
1 => 'mon',
2 => 'tues'
),
2 => array(
0 => 'jan',
1 => 'feb',
2 => 'march'
)
);
$newarray = [];
$length = count($arr[0]);
foreach ($arr as $key => $value) {
for ($i=0; $i < $length; $i++) {
$newarray[$i][$key] = $value[$i];
}
//break;
}
print_r($newarray);
to change the value of a sub array item you just add another [] part:
$arr[0][1] = 'sun';
I made it in a recursive way.
$arr = array(
0 => array(
0 => 'one',
1 => 'two',
2 => 'three'
),
1 => array(
0 => 'sun',
1 => 'mon',
2 => 'tues'
),
2 => array(
0 => 'jan',
1 => 'feb',
2 => 'march'
)
);
$new_arr = array();
$nb = count($arr);
$i = 0;
while($nb > 0){
$nb--;
$val1 = $arr[0][$i];
$val2 = $arr[1][$i];
$val3 = $arr[2][$i];
$new_array[] = array($val1, $val2, $val3);
$i++;
}
print_r($new_array);
You can check it here http://sandbox.onlinephpfunctions.com/code/e9e87de78f7b9dbb6edc72340d60f8b31a77875f
You can use array_map function with null as callback.
$arr = array_map(
null,
$arr[0],
$arr[1],
$arr[2]
);
print_r($arr);
//Output
Array
(
[0] => Array
(
[0] => one
[1] => sun
[2] => jan
)
[1] => Array
(
[0] => two
[1] => mon
[2] => feb
)
[2] => Array
(
[0] => three
[1] => tues
[2] => march
)
)