Search code examples
phparraysarray-push

Append keys to existing array value


I have the following array and by using array_push & I am getting not the right result.

Array:

Array
(
    [0] => 1039
    [1] => 417
    [2] => 418
)

Array Push:

array_push($array, array("a","b","c"));

Result:

Array
(
    [0] => 1039
    [1] => 417
    [2] => 418
    [3] => Array
    (
        [0] => a
        [1] => b
        [2] => c
    )

)

I want the a,b,c append to value 417 for example .

Disirable result:

Array
(
    [1039] => 1039
    [417] => Array
    (
        [0] => a
        [1] => b
        [2] => c
    )
    [418] => 418

)

How can this be done?

SOLUTION:

$data = Array (
    0 => 1039,
    1 => 417,
    2 => 418,
 );

foreach( $data as $key => $val ) {
    $new_data[$val] = 0;
}

foreach( $new_data as $k => $v ){
    if( $k == 417 ){
        $new_data[$k] = array( 'p' => 50, 'pp' => 75 );
    }
}
print_r($new_data); 

Solution

  • use loop to display new array data

     $data = Array (
          0 => 1039,
          1 => 417,
          2 => 418,
          );
    
     foreach( $data as $key => $val ) {
         if ( $val == 417 ) {
             $val = array( 'a','b','c' );
         }
    
         $new_data = array( $key => $val );
         foreach( $new_data as $key2 => $val2 ) {
             if ( is_array( $val2 ) ) {
                 $val2 = array( 417 => $val );
             }
             $new_data1 = array( $key2 => $val2 );
    
        print_r($new_data1);
        }
    }