简体   繁体   中英

PHP Array key value next to each other to use in javascript

i need to create chart based on php array and i found something about traversing in stackoverflow posts but those answers doesnt help for converting this:

Array
(
    [product sample 1] => Array
        (
            [0] => Array
                (
                    [hitsTotal] => 63
                )

            [1] => Array
                (
                    [hitsTotal] => 113
                )

        )

    [product sample 2] => Array
        (
            [0] => Array
                (
                    [hitsTotal] => 57
                )

            [1] => Array
                (
                    [hitsTotal] => 107
                )

        )
)

to

['product sample 1', 63, 113],
['product sample 2', 57, 107]

how to convert?

Assuming $input is the array you present in your post you can do the following:

$output = array();

foreach($input as $key => $value)
{
    $obj = array();
    $obj[] = $key;
    $obj[] = $value[0]['hitsTotal'];
    $obj[] = $value[1]['hitsTotal'];
    $output[] = $obj;
}


var_dump($output);  //This will print it on screen so you can validate the output

To prepare your data for passing to js(client side) as an array of arrays use the following approach ( array_walk , array_column , array_merge and json_encode functions):

// supposing that $arr is your initial array
$result = [];
array_walk($arr, function($v, $k) use(&$result){
    $hitsTotals = array_column($v, 'hitsTotal');
    $result[] = array_merge([$k], $hitsTotals);
});

echo json_encode($result);

The output:

[["product sample 1",63,113],["product sample 2",57,107]]

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM