3

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.

2 Answers 2

3

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
                )

        )

)
Sign up to request clarification or add additional context in comments.

Comments

2

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>';
?>

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.