1

I need to convert my array but I don't have extended experience to complete this task.

Please help me to find a way to do please?

I have this:

Array(
    [0] => Array
        (
            [BTC] => 0.07634
        )

    [1] => Array
        (
            [ETH] => 0.00103
        )

    [2] => Array
        (
            [LTC] => 0.006787
        )

    [3] => Array
        (
            [XMR] => 0.006351
        )

And I need this:

Array(
    [BTC] => 0.07634
    [ETH] => 0.00103(
    [LTC] => 0.006787
    [XMR] => 0.006351
    [ZEC] => 0.00144
    [MD_DT_CAD] => 2017-08-14 02:16:44
)
Marcos Vinicius
  • 207
  • 3
  • 14

4 Answers4

2

You have following

$data =array(
array("BTC" => 0.07634),
array("ETH" => 0.00103),
array("LTC" => 0.006787),
array("XMR" => 0.006351)
);

You can achieve your result by following.

<?php
$data =array(
    array("BTC" => 0.07634),
    array("ETH" => 0.00103),
    array("LTC" => 0.006787),
    array("XMR" => 0.006351)
    );

foreach($data as $value){
    foreach ($value as $key => $value1) {
    $new_arr[$key] = $value1;
    }
}
echo "<pre>";
print_r($new_arr);
?>
Vatsal Shah
  • 1,334
  • 18
  • 21
1

Simple use call_user_func_array with array_merge

$array = Array("0" => Array("BTC" => 0.07634),"1" => Array("ETH" => 0.00103),"2" => Array("LTC" => 0.006787),"3" => Array("XMR" => 0.006351));
$new_array = call_user_func_array('array_merge', $array);
print_r($new_array);
JYoThI
  • 11,977
  • 1
  • 11
  • 26
1

<?php $array=array(array("BTC" => 0.07634),array("ETH" => 0.00103),array("LTC" => 0.006787),
array("XMR" => 0.006351));
//echo print_r($array);
$array2 = array_reduce($array, 'array_merge', array());//or call_user_func_array('array_merge', $array);
 echo print_r($array2);
?>
K-Square
  • 63
  • 5
1

Assuming your array is called $array :

$new_array = array_merge(... $array);

Explaination : array_merge() takes an undefined amount of different arrays as parameters, gathers them as entries in a single array by using the splat operator (...) and then merges all these arrays in one before returning it. Calling that function and passing it a single array and using the splat operator in the calling too makes that single array to be the single array containing the arrays to merge on which the function will work. By doing that, you can have the function to merge sub_arrays of an array you already have without calling additional functions.

Sarkouille
  • 1,275
  • 9
  • 16