Reputation: 201
I have an array as like this
Array
(
[solar] => Array
(
[0] => sun
[1] => moon
)
[SolarGraph] => Array
(
[0] => Array
(
[y] => 89
[url] => sun
)
[1] => Array
(
[y] => 57
[url] => moon
)
)
)
but i need the y and url name to be changed as follows:
Array
(
[solar] => Array
(
[0] => sun
[1] => moon
)
[SolarGraph] => Array
(
[0] => Array
(
[solarvalue] => 89
[solarname] => sun
)
[1] => Array
(
[solarvalue] => 57
[solarname] => moon
)
)
)
I tried to change but i get only one array...heres the code
foreach($Rows as $key=>$val){
$aUse[] = $val['rt_solargraph'];
foreach($aUse as $key => $value)
{
$aUser['SolarGraph'][$key]['SolarValue'] = $value[$key]['y'];
$aUser['SolarGraph'][$key]['SolarName'] = $value[$key]['url'];
}
}
Please Help me Fix this as i am new to php and array. i dont know how to iterate the elements from the inside array.
Upvotes: 3
Views: 195
Reputation: 3131
try this.
<?php
$solar = array('sun','moon');
$SolarGraph = array(array('y' => 89,'url'=>'sun' ),array('y' => 57,'url'=>'moon' ));
$Rows = array('solar'=>$solar, 'SolarGraph'=>$SolarGraph );
echo '<pre>';
$newArray = [];
foreach ($Rows as $key => $value) {
if($key =='SolarGraph'){
foreach ($value as $lkey => $finalvalue) {
$newArray[$key][$lkey]['solarvalue'] = $finalvalue['y'];
$newArray[$key][$lkey]['solarname'] = $finalvalue['url'];
}
}else{
$newArray[$key] = $value;
}
}
print_r($newArray);
echo '</pre>';
?>
Upvotes: 2
Reputation: 16117
You can use like that:
// initialize array
$newArr = array();
foreach ($yourArr as $key => $value) {
// if $value is array , you can also add SolarGraph key check.
if(is_array($value) && $key == 'SolarGraph'){
foreach ($value as $mykey => $finalVal) {
// assign values to $newArr
$newArr[$key][$mykey]['solarvalue'] = $finalVal['y'];
$newArr[$key][$mykey]['solarname'] = $finalVal['url'];
}
}
else{
// if not is array store as same
$newArr[$key] = $value;
}
}
echo "<pre>";
print_r($newArr);
Result:
Array
(
[solar] => Array
(
[0] => sun
[1] => moon
)
[SolarGraph] => Array
(
[0] => Array
(
[solarvalue] => 89
[solarname] => sun
)
[1] => Array
(
[solarvalue] => 89
[solarname] => sun
)
)
)
Upvotes: 3