Calculate the sum of columns with PHP [duplicate] - php

This question already has answers here:
How to calculate the sum of variables from JSON data?
(1 answer)
PHP Sum up JSON Object value
(1 answer)
Closed 2 years ago.
I would like to calculate the sum of the numbers with highlight yellow color in a variable and the sum of the other values which are not highlighted in another variable.
My PHP code is:
$symbols=$request->Get('/_get?symbol=JAN&from=1586959285&to=1586959324&data=ba');
if($symbols!=false) {
echo $symbols;
}
and the result of this code is:
{"retcode":"0 Done","answer":[[1.09076,1.09084],[1.09077,1.09086],[1.09072,1.09081],[1.09073,1.09082],[1.09073,1.09083],[1.09074,1.09084],[1.09082,1.09084],[1.09090,1.09097],[1.09091,1.09099],[1.09091,1.09100],[1.09093,1.09101],[1.09094,1.09102],[1.09095,1.09104],[1.09097,1.09106],[1.09098,1.09107],[1.09098,1.09108],[1.09099,1.09108],[1.09097,1.09106],[1.09096,1.09106],[1.09096,1.09105],[1.09097,1.09105],[1.09096,1.09105],[1.09095,1.09105],[1.09095,1.09104],[1.09093,1.09102],[1.09095,1.09102],[1.09095,1.09104],[1.09095,1.09103],[1.09093,1.09102],[1.09082,1.09090],[1.09082,1.09092],[1.09083,1.09092],[1.09082,1.09091],[1.09081,1.09090],[1.09080,1.09089],[1.09081,1.09090],[1.09080,1.09089],[1.09081,1.09089],[1.09080,1.09089],[1.09080,1.09088],[1.09078,1.09087],[1.09079,1.09088],[1.09079,1.09089],[1.09075,1.09084],[1.09074,1.09083],[1.09074,1.09084],[1.09074,1.09083],[1.09074,1.09084],[1.09074,1.09083],[1.09073,1.09083],[1.09074,1.09083],[1.09074,1.09084],[1.09074,1.09083],[1.09073,1.09083],[1.09073,1.09082],[1.09073,1.09083],[1.09074,1.09083],[1.09073,1.09082],[1.09073,1.09083],[1.09073,1.09082],[1.09072,1.09081],[1.09071,1.09081],[1.09072,1.09081],[1.09072,1.09083],[1.09073,1.09083]]}
If I decode the JSON my code is:
$hugeArray = json_decode($symbols, true);
foreach ($hugeArray as $key => $value)
{
print_r($hugeArray);
}
And the result is:
Array ( [retcode] => 0 Done [answer] => Array ( [0] => Array ( [0] => 1.09076 [1] => 1.09084 ) [1] => Array ( [0] => 1.09077 [1] => 1.09086 ) [2] => Array ( [0] => 1.09072 [1] => 1.09081 ) [3] => Array ( [0] => 1.09073 [1] => 1.09082 ) [4] => Array ( [0] => 1.09073 [1] => 1.09083 ) [5] => Array ( [0] => 1.09074 [1] => 1.09084 ) [6] => Array ( [0] => 1.09082 [1] => 1.09084 ) [7] => Array ( [0] => 1.0909 [1] => 1.09097 ) [8] => Array ( [0] => 1.09091 [1] => 1.09099 ) [9] => Array ( [0] => 1.09091 [1] => 1.091 ) [10] => Array ( [0] => 1.09093 [1] => 1.09101 ) [11] => Array ( [0] => 1.09094 [1] => 1.09102 ) [12] => Array ( [0] => 1.09095 [1] => 1.09104 ) [13] => Array ( [0] => 1.09097 [1] => 1.09106 ) [14] => Array ( [0] => 1.09098 [1] => 1.09107 ) [15] => Array ( [0] => 1.09098 [1] => 1.09108 ) [16] => Array ( [0] => 1.09099 [1] => 1.09108 ) [17] => Array ( [0] => 1.09097 [1] => 1.09106 ) [18] => Array ( [0] => 1.09096 [1] => 1.09106 ) [19] => Array ( [0] => 1.09096 [1] => 1.09105 ) [20] => Array ( [0] => 1.09097 [1] => 1.09105 ) [21] => Array ( [0] => 1.09096 [1] => 1.09105 ) [22] => Array ( [0] => 1.09095 [1] => 1.09105 ) [23] => Array ( [0] => 1.09095 [1] => 1.09104 ) [24] => Array ( [0] => 1.09093 [1] => 1.09102 ) [25] => Array ( [0] => 1.09095 [1] => 1.09102 ) [26] => Array ( [0] => 1.09095 [1] => 1.09104 ) [27] => Array ( [0] => 1.09095 [1] => 1.09103 ) [28] => Array ( [0] => 1.09093 [1] => 1.09102 ) [29] => Array ( [0] => 1.09082 [1] => 1.0909 ) [30] => Array ( [0] => 1.09082 [1] => 1.09092 ) [31] => Array ( [0] => 1.09083 [1] => 1.09092 ) [32] => Array ( [0] => 1.09082 [1] => 1.09091 ) [33] => Array ( [0] => 1.09081 [1] => 1.0909 ) [34] => Array ( [0] => 1.0908 [1] => 1.09089 ) [35] => Array ( [0] => 1.09081 [1] => 1.0909 ) [36] => Array ( [0] => 1.0908 [1] => 1.09089 ) [37] => Array ( [0] => 1.09081 [1] => 1.09089 ) [38] => Array ( [0] => 1.0908 [1] => 1.09089 ) [39] => Array ( [0] => 1.0908 [1] => 1.09088 ) [40] => Array ( [0] => 1.09078 [1] => 1.09087 ) [41] => Array ( [0] => 1.09079 [1] => 1.09088 ) [42] => Array ( [0] => 1.09079 [1] => 1.09089 ) [43] => Array ( [0] => 1.09075 [1] => 1.09084 ) [44] => Array ( [0] => 1.09074 [1] => 1.09083 ) [45] => Array ( [0] => 1.09074 [1] => 1.09084 ) [46] => Array ( [0] => 1.09074 [1] => 1.09083 ) [47] => Array ( [0] => 1.09074 [1] => 1.09084 ) [48] => Array ( [0] => 1.09074 [1] => 1.09083 ) [49] => Array ( [0] => 1.09073 [1] => 1.09083 ) [50] => Array ( [0] => 1.09074 [1] => 1.09083 ) [51] => Array ( [0] => 1.09074 [1] => 1.09084 ) [52] => Array ( [0] => 1.09074 [1] => 1.09083 ) [53] => Array ( [0] => 1.09073 [1] => 1.09083 ) [54] => Array ( [0] => 1.09073 [1] => 1.09082 ) [55] => Array ( [0] => 1.09073 [1] => 1.09083 ) [56] => Array ( [0] => 1.09074 [1] => 1.09083 ) [57] => Array ( [0] => 1.09073 [1] => 1.09082 ) [58] => Array ( [0] => 1.09073 [1] => 1.09083 ) [59] => Array ( [0] => 1.09073 [1] => 1.09082 ) [60] => Array ( [0] => 1.09072 [1] => 1.09081 ) [61] => Array ( [0] => 1.09071 [1] => 1.09081 ) [62] => Array ( [0] => 1.09072 [1] => 1.09081 ) [63] => Array ( [0] => 1.09072 [1] => 1.09083 ) [64] => Array ( [0] => 1.09073 [1] => 1.09083 ) ) ) Array ( [retcode] => 0 Done [answer] => Array ( [0] => Array ( [0] => 1.09076 [1] => 1.09084 ) [1] => Array ( [0] => 1.09077 [1] => 1.09086 ) [2] => Array ( [0] => 1.09072 [1] => 1.09081 ) [3] => Array ( [0] => 1.09073 [1] => 1.09082 ) [4] => Array ( [0] => 1.09073 [1] => 1.09083 ) [5] => Array ( [0] => 1.09074 [1] => 1.09084 ) [6] => Array ( [0] => 1.09082 [1] => 1.09084 ) [7] => Array ( [0] => 1.0909 [1] => 1.09097 ) [8] => Array ( [0] => 1.09091 [1] => 1.09099 ) [9] => Array ( [0] => 1.09091 [1] => 1.091 ) [10] => Array ( [0] => 1.09093 [1] => 1.09101 ) [11] => Array ( [0] => 1.09094 [1] => 1.09102 ) [12] => Array ( [0] => 1.09095 [1] => 1.09104 ) [13] => Array ( [0] => 1.09097 [1] => 1.09106 ) [14] => Array ( [0] => 1.09098 [1] => 1.09107 ) [15] => Array ( [0] => 1.09098 [1] => 1.09108 ) [16] => Array ( [0] => 1.09099 [1] => 1.09108 ) [17] => Array ( [0] => 1.09097 [1] => 1.09106 ) [18] => Array ( [0] => 1.09096 [1] => 1.09106 ) [19] => Array ( [0] => 1.09096 [1] => 1.09105 ) [20] => Array ( [0] => 1.09097 [1] => 1.09105 ) [21] => Array ( [0] => 1.09096 [1] => 1.09105 ) [22] => Array ( [0] => 1.09095 [1] => 1.09105 ) [23] => Array ( [0] => 1.09095 [1] => 1.09104 ) [24] => Array ( [0] => 1.09093 [1] => 1.09102 ) [25] => Array ( [0] => 1.09095 [1] => 1.09102 ) [26] => Array ( [0] => 1.09095 [1] => 1.09104 ) [27] => Array ( [0] => 1.09095 [1] => 1.09103 ) [28] => Array ( [0] => 1.09093 [1] => 1.09102 ) [29] => Array ( [0] => 1.09082 [1] => 1.0909 ) [30] => Array ( [0] => 1.09082 [1] => 1.09092 ) [31] => Array ( [0] => 1.09083 [1] => 1.09092 ) [32] => Array ( [0] => 1.09082 [1] => 1.09091 ) [33] => Array ( [0] => 1.09081 [1] => 1.0909 ) [34] => Array ( [0] => 1.0908 [1] => 1.09089 ) [35] => Array ( [0] => 1.09081 [1] => 1.0909 ) [36] => Array ( [0] => 1.0908 [1] => 1.09089 ) [37] => Array ( [0] => 1.09081 [1] => 1.09089 ) [38] => Array ( [0] => 1.0908 [1] => 1.09089 ) [39] => Array ( [0] => 1.0908 [1] => 1.09088 ) [40] => Array ( [0] => 1.09078 [1] => 1.09087 ) [41] => Array ( [0] => 1.09079 [1] => 1.09088 ) [42] => Array ( [0] => 1.09079 [1] => 1.09089 ) [43] => Array ( [0] => 1.09075 [1] => 1.09084 ) [44] => Array ( [0] => 1.09074 [1] => 1.09083 ) [45] => Array ( [0] => 1.09074 [1] => 1.09084 ) [46] => Array ( [0] => 1.09074 [1] => 1.09083 ) [47] => Array ( [0] => 1.09074 [1] => 1.09084 ) [48] => Array ( [0] => 1.09074 [1] => 1.09083 ) [49] => Array ( [0] => 1.09073 [1] => 1.09083 ) [50] => Array ( [0] => 1.09074 [1] => 1.09083 ) [51] => Array ( [0] => 1.09074 [1] => 1.09084 ) [52] => Array ( [0] => 1.09074 [1] => 1.09083 ) [53] => Array ( [0] => 1.09073 [1] => 1.09083 ) [54] => Array ( [0] => 1.09073 [1] => 1.09082 ) [55] => Array ( [0] => 1.09073 [1] => 1.09083 ) [56] => Array ( [0] => 1.09074 [1] => 1.09083 ) [57] => Array ( [0] => 1.09073 [1] => 1.09082 ) [58] => Array ( [0] => 1.09073 [1] => 1.09083 ) [59] => Array ( [0] => 1.09073 [1] => 1.09082 ) [60] => Array ( [0] => 1.09072 [1] => 1.09081 ) [61] => Array ( [0] => 1.09071 [1] => 1.09081 ) [62] => Array ( [0] => 1.09072 [1] => 1.09081 ) [63] => Array ( [0] => 1.09072 [1] => 1.09083 ) [64] => Array ( [0] => 1.09073 [1] => 1.09083 ) ) )
Any Suggestions? Thanks in advance.

Related

Convert string format to LatLng format using PHP

I'm trying to draw polyline in a map, totally new to PHP,I tried already researched previous topic but their format doesn't match to the one I need or using other dev language.
How to convert $polylines_data as string
$polylines_data="9.76716,118.74789000000001,9.76665,118.74787,9.766100000000002,118.74787,9.76609,118.74773,9.76609,118.74745000000001,9.76519,118.74742,9.7644,118.74737,9.76382,118.74734000000001,9.7626,118.74728,9.76125,118.7472,9.760670000000001,118.74719,9.760280000000002,118.74724,9.75932,118.74741000000002,9.75826,118.74757000000001,9.75787,118.74763000000002,9.7575,118.74766000000001,9.757290000000001,118.74765000000001,9.756670000000002,118.74752000000001,9.755870000000002,118.74736000000001,9.75567,118.74732000000002,9.755320000000001,118.74732000000002,9.75441,118.74749000000001,9.753960000000001,118.74759000000002,9.753210000000001,118.74776000000001,9.752730000000001,118.74778,9.752510000000001,118.74777,9.75197,118.74773,9.75145,118.74772000000002,9.750720000000001,118.74776000000001,9.75051,118.74777,9.749300000000002,118.74785000000001,9.749270000000001,118.74863,9.74925,118.74941000000001,9.74914,118.75251000000002,9.747770000000001,118.75248,9.74609,118.75245000000001,9.74606,118.75307000000001,9.746080000000001,118.75314000000002,9.746120000000001,118.75316000000001,9.74624,118.75316000000001";
into this format or set of orders using PHP 👇
[
[-122.483696, 37.833818],
[-122.483482, 37.833174],
[-122.483396, 37.8327],
[-122.483568, 37.832056],
[-122.48404, 37.831141],
[-122.48404, 37.830497],
[-122.483482, 37.82992],
[-122.483568, 37.829548],
[-122.48507, 37.829446],
[-122.4861, 37.828802],
[-122.486958, 37.82931],
[-122.487001, 37.830802],
[-122.487516, 37.831683],
[-122.488031, 37.832158],
[-122.488889, 37.832971],
[-122.489876, 37.832632],
[-122.490434, 37.832937],
[-122.49125, 37.832429],
[-122.491636, 37.832564],
[-122.492237, 37.833378],
[-122.493782, 37.833683]
]
I'm trying to implement it here on client's end, all I need is the format from the backend end using PHP.
map.addSource('route', {
'type': 'geojson',
'data': {
'type': 'Feature',
'properties': {},
'geometry': {
'type': 'LineString',
'coordinates': [
[-122.483696, 37.833818],
[-122.483482, 37.833174],
[-122.483396, 37.8327],
[-122.483568, 37.832056],
[-122.48404, 37.831141],
[-122.48404, 37.830497],
[-122.483482, 37.82992],
[-122.483568, 37.829548],
[-122.48507, 37.829446],
[-122.4861, 37.828802],
[-122.486958, 37.82931],
[-122.487001, 37.830802],
[-122.487516, 37.831683],
[-122.488031, 37.832158],
[-122.488889, 37.832971],
[-122.489876, 37.832632],
[-122.490434, 37.832937],
[-122.49125, 37.832429],
[-122.491636, 37.832564],
[-122.492237, 37.833378],
[-122.493782, 37.833683]
]
}
}
});
Really appreciate if you can help. Thanks in advance. 🙌
You could use explode() and foreach over result to get what you want:
<?php
$polylines_data="9.76716,118.74789000000001,9.76665,118.74787,9.766100000000002,118.74787,9.76609,118.74773,9.76609,118.74745000000001,9.76519,118.74742,9.7644,118.74737,9.76382,118.74734000000001,9.7626,118.74728,9.76125,118.7472,9.760670000000001,118.74719,9.760280000000002,118.74724,9.75932,118.74741000000002,9.75826,118.74757000000001,9.75787,118.74763000000002,9.7575,118.74766000000001,9.757290000000001,118.74765000000001,9.756670000000002,118.74752000000001,9.755870000000002,118.74736000000001,9.75567,118.74732000000002,9.755320000000001,118.74732000000002,9.75441,118.74749000000001,9.753960000000001,118.74759000000002,9.753210000000001,118.74776000000001,9.752730000000001,118.74778,9.752510000000001,118.74777,9.75197,118.74773,9.75145,118.74772000000002,9.750720000000001,118.74776000000001,9.75051,118.74777,9.749300000000002,118.74785000000001,9.749270000000001,118.74863,9.74925,118.74941000000001,9.74914,118.75251000000002,9.747770000000001,118.75248,9.74609,118.75245000000001,9.74606,118.75307000000001,9.746080000000001,118.75314000000002,9.746120000000001,118.75316000000001,9.74624,118.75316000000001";
$coords = explode(',', $polylines_data);
$points = array();
for ($i = 0; $i < count($coords); $i += 2) {
$points[] = array((float)$coords[$i+1], (float)$coords[$i]);
}
echo '<pre>';
print_r($points);
Output is:
Array
(
[0] => Array
(
[0] => 118.74789
[1] => 9.76716
)
[1] => Array
(
[0] => 118.74787
[1] => 9.76665
)
[2] => Array
(
[0] => 118.74787
[1] => 9.7661
)
[3] => Array
(
[0] => 118.74773
[1] => 9.76609
)
[4] => Array
(
[0] => 118.74745
[1] => 9.76609
)
[5] => Array
(
[0] => 118.74742
[1] => 9.76519
)
[6] => Array
(
[0] => 118.74737
[1] => 9.7644
)
[7] => Array
(
[0] => 118.74734
[1] => 9.76382
)
[8] => Array
(
[0] => 118.74728
[1] => 9.7626
)
[9] => Array
(
[0] => 118.7472
[1] => 9.76125
)
[10] => Array
(
[0] => 118.74719
[1] => 9.76067
)
[11] => Array
(
[0] => 118.74724
[1] => 9.76028
)
[12] => Array
(
[0] => 118.74741
[1] => 9.75932
)
[13] => Array
(
[0] => 118.74757
[1] => 9.75826
)
[14] => Array
(
[0] => 118.74763
[1] => 9.75787
)
[15] => Array
(
[0] => 118.74766
[1] => 9.7575
)
[16] => Array
(
[0] => 118.74765
[1] => 9.75729
)
[17] => Array
(
[0] => 118.74752
[1] => 9.75667
)
[18] => Array
(
[0] => 118.74736
[1] => 9.75587
)
[19] => Array
(
[0] => 118.74732
[1] => 9.75567
)
[20] => Array
(
[0] => 118.74732
[1] => 9.75532
)
[21] => Array
(
[0] => 118.74749
[1] => 9.75441
)
[22] => Array
(
[0] => 118.74759
[1] => 9.75396
)
[23] => Array
(
[0] => 118.74776
[1] => 9.75321
)
[24] => Array
(
[0] => 118.74778
[1] => 9.75273
)
[25] => Array
(
[0] => 118.74777
[1] => 9.75251
)
[26] => Array
(
[0] => 118.74773
[1] => 9.75197
)
[27] => Array
(
[0] => 118.74772
[1] => 9.75145
)
[28] => Array
(
[0] => 118.74776
[1] => 9.75072
)
[29] => Array
(
[0] => 118.74777
[1] => 9.75051
)
[30] => Array
(
[0] => 118.74785
[1] => 9.7493
)
[31] => Array
(
[0] => 118.74863
[1] => 9.74927
)
[32] => Array
(
[0] => 118.74941
[1] => 9.74925
)
[33] => Array
(
[0] => 118.75251
[1] => 9.74914
)
[34] => Array
(
[0] => 118.75248
[1] => 9.74777
)
[35] => Array
(
[0] => 118.75245
[1] => 9.74609
)
[36] => Array
(
[0] => 118.75307
[1] => 9.74606
)
[37] => Array
(
[0] => 118.75314
[1] => 9.74608
)
[38] => Array
(
[0] => 118.75316
[1] => 9.74612
)
[39] => Array
(
[0] => 118.75316
[1] => 9.74624
)
)

How to merge many array in PHP

I have array who showing result like this
Array
(
[0] => AED
)
Array
(
[0] => 1
)
Array
(
[0] => 4071.64
)
Array
(
[0] => 3603.98
)
Array
(
[0] => AUD
)
Array
(
[0] => 1
)
Array
(
[0] => 10151.11
)
Array
(
[0] => 9964.65
)
Array
(
[0] => CHF
)
Array
(
[0] => 1
)
Array
(
[0] => 14162.66
)
Array
(
[0] => 13912.70
)
Array
(
[0] => CNY
)
Array
(
[0] => 1
)
Array
(
[0] => 2177.73
)
Array
(
[0] => 2024.07
)
Array
(
[0] => EUR
)
Array
(
[0] => 1
)
Array
(
[0] => 16080.01
)
Array
(
[0] => 15813.89
)
Array
(
[0] => GBP
)
Array
(
[0] => 1
)
Array
(
[0] => 18476.74
)
Array
(
[0] => 18180.11
)
Array
(
[0] => HKD
)
Array
(
[0] => 1
)
Array
(
[0] => 1802.15
)
Array
(
[0] => 1778.28
)
Array
(
[0] => JPY
)
Array
(
[0] => 1
)
Array
(
[0] => 128.40
)
Array
(
[0] => 125.26
)
Array
(
[0] => NZD
)
Array
(
[0] => 1
)
Array
(
[0] => 9711.35
)
Array
(
[0] => 9529.10
)
Array
(
[0] => SAR
)
Array
(
[0] => 1
)
Array
(
[0] => 3765.13
)
Array
(
[0] => 3727.50
)
Array
(
[0] => SGD
)
Array
(
[0] => 1
)
Array
(
[0] => 10496.44
)
Array
(
[0] => 10308.02
)
Array
(
[0] => USD
)
Array
(
[0] => 1
)
Array
(
[0] => 14120.00
)
Array
(
[0] => 13980.00
)
I want to merge that array into one array. My question is how to merge that array the output must be like this
array(
[0]=>array(
[0]=>AED
[1]=>1
[2]=>4071.64
[3]=>3603.98
)
[1]=>array(
[0]=>AUD
[1]=>1
[2]=>10151.11
[3]=>9964.65
)
[3]=>array(
[0]=>CHF
[1]=>1
[2]=>14162.66
[3]=>13912.70
)
//and so on
)
OR the result like this
Array
(
[0] => AED
[1] => 1
[2] => 4071.64
[3] => 3603.98
[4] => AUD
[5] => 1
[6] => 10151.11
[7] => 9964.65
[8] => CHF
[9] => 1
[10] => 14162.66
[11] => 13912.70
[12] => CNY
[13] => 1
[14] => 2177.73
[15] => 2024.07
[16] => EUR
[17] => 1
[18] => 16080.01
[19] => 15813.89
[20] => GBP
[21] => 1
[22] => 18476.74
[23] => 18180.11
[24] => HKD
[25] => 1
[26] => 1802.15
[27] => 1778.28
[28] => JPY
[29] => 1
[30] => 128.40
[31] => 125.26
[32] => NZD
[33] => 1
[34] => 9711.35
[35] => 9529.10
[36] => SAR
[37] => 1
[38] => 3765.13
[39] => 3727.50
[40] => SGD
[41] => 1
[42] => 10496.44
[43] => 10308.02
[44] => USD
[45] => 1
[46] => 14120.00
[47] => 13980.00
)
Please help me, brothers and sisters, I have tried using array_merge() and array_push() but not showing the right result. Thanks
You can use array_chunk for that if it's always inner arrays of length == 4.
$text = "AED 1 4071.64 3603.98 AUD 1 10151.11 9964.65";
$result= array_chunk( explode( ' ', $text ), 4 );
var_dump( $result );
Here's a php sandbox link.
Try this code:
$array_data = array(
array(
AED, 1, 4071.64, 3603.98
),
array(
AUD, 1, 10151.11, 9964.65
),
array(
CHF, 1, 14162.66, 13912.70
),
);
$a = [];
foreach($array_data as $data) {
$a = array_merge($a, $data);
}

foreach array using blade

I started using Blade template engine with codeigniter, and Google Api
i use blade to develope an old project created by another developers for this reason i have to keep the same blade data structure.
this is the Blade code written by a different developpers (i need to keep it ):
#foreach ($analytics['countries'] as $country)
['{{$country['country']}}', {{$country['visits_percent']}}],
#endforeach
this is my PHP code
$this->blade->view()->make('analytics/analytics', ['analytics' => $analytics]);
and this is my $analtics array :
Array
(
[0] => Array
(
[0] => Canada
[1] => 3367
)
[1] => Array
(
[0] => United States
[1] => 202
)
[2] => Array
(
[0] => Malaysia
[1] => 34
)
[3] => Array
(
[0] => Mexico
[1] => 31
)
[4] => Array
(
[0] => Peru
[1] => 23
)
[5] => Array
(
[0] => Brazil
[1] => 21
)
[6] => Array
(
[0] => United Kingdom
[1] => 21
)
[7] => Array
(
[0] => Netherlands
[1] => 17
)
[8] => Array
(
[0] => Nepal
[1] => 14
)
[9] => Array
(
[0] => India
[1] => 12
)
[10] => Array
(
[0] => Belarus
[1] => 11
)
[11] => Array
(
[0] => France
[1] => 9
)
[12] => Array
(
[0] => Ireland
[1] => 9
)
[13] => Array
(
[0] => Germany
[1] => 7
)
[14] => Array
(
[0] => Philippines
[1] => 6
)
[15] => Array
(
[0] => Singapore
[1] => 5
)
[16] => Array
(
[0] => Bangladesh
[1] => 4
)
[17] => Array
(
[0] => Italy
[1] => 4
)
[18] => Array
(
[0] => Serbia
[1] => 4
)
[19] => Array
(
[0] => Australia
[1] => 3
)
[20] => Array
(
[0] => Belgium
[1] => 3
)
[21] => Array
(
[0] => Indonesia
[1] => 3
)
[22] => Array
(
[0] => Iran
[1] => 3
)
[23] => Array
(
[0] => Jordan
[1] => 3
)
[24] => Array
(
[0] => Morocco
[1] => 3
)
[25] => Array
(
[0] => China
[1] => 2
)
[26] => Array
(
[0] => Colombia
[1] => 2
)
[27] => Array
(
[0] => Moldova
[1] => 2
)
[28] => Array
(
[0] => Pakistan
[1] => 2
)
[29] => Array
(
[0] => Poland
[1] => 2
)
[30] => Array
(
[0] => Romania
[1] => 2
)
[31] => Array
(
[0] => South Africa
[1] => 2
)
[32] => Array
(
[0] => Thailand
[1] => 2
)
[33] => Array
(
[0] => Turkey
[1] => 2
)
[34] => Array
(
[0] => Argentina
[1] => 1
)
[35] => Array
(
[0] => El Salvador
[1] => 1
)
[36] => Array
(
[0] => Hong Kong
[1] => 1
)
[37] => Array
(
[0] => Japan
[1] => 1
)
[38] => Array
(
[0] => Kenya
[1] => 1
)
[39] => Array
(
[0] => Latvia
[1] => 1
)
[40] => Array
(
[0] => New Zealand
[1] => 1
)
[41] => Array
(
[0] => Russia
[1] => 1
)
[42] => Array
(
[0] => Saudi Arabia
[1] => 1
)
[43] => Array
(
[0] => South Korea
[1] => 1
)
)
my question is how can i produce the same array structure for blade
thank you
I hope this code useful for you :
Route::get('/test', function (Request $request) {
$analytics=[
[
'Canada',
3367
],
[
'United States',
202
],
[
'Malaysia',
34
],
];
return view('welcome',compact('analytics'));
})
and you can use this code in view :
#foreach( $analytics as $analytic)
<p>
country = {{$analytic[0]}}
<br>
code = {{$analytic[1]}}
<tr>
</p>
#endforeach

echo multidimensional array values into a readable format

I have a crazy array from google analytics API:
print_r($visits);
Produces the following:
Array ( [http_code] => 200 [kind] => analytics#gaData [id] => https://www.googleapis.com/analytics/v3/data/ga?ids=ga:615743&dimensions=ga:date&metrics=ga:visits&start-date=2015-07-07&end-date=2015-08-07 [query] => Array ( [start-date] => 2015-07-07 [end-date] => 2015-08-07 [ids] => ga:615743 [dimensions] => ga:date [metrics] => Array ( [0] => ga:visits ) [start-index] => 1 [max-results] => 1000 ) [itemsPerPage] => 1000 [totalResults] => 32 [selfLink] => https://www.googleapis.com/analytics/v3/data/ga?ids=ga:615743&dimensions=ga:date&metrics=ga:visits&start-date=2015-07-07&end-date=2015-08-07 [profileInfo] => Array ( [profileId] => 615743 [accountId] => 391435 [webPropertyId] => UA-391435-1 [internalWebPropertyId] => 642064 [profileName] => www.website.co.uk [tableId] => ga:615743 ) [containsSampledData] => [columnHeaders] => Array ( [0] => Array ( [name] => ga:date [columnType] => DIMENSION [dataType] => STRING ) [1] => Array ( [name] => ga:visits [columnType] => METRIC [dataType] => INTEGER ) ) [totalsForAllResults] => Array ( [ga:visits] => 8250 ) [rows] => Array ( [0] => Array ( [0] => 20150707 [1] => 271 ) [1] => Array ( [0] => 20150708 [1] => 266 ) [2] => Array ( [0] => 20150709 [1] => 251 ) [3] => Array ( [0] => 20150710 [1] => 264 ) [4] => Array ( [0] => 20150711 [1] => 351 ) [5] => Array ( [0] => 20150712 [1] => 244 ) [6] => Array ( [0] => 20150713 [1] => 309 ) [7] => Array ( [0] => 20150714 [1] => 250 ) [8] => Array ( [0] => 20150715 [1] => 277 ) [9] => Array ( [0] => 20150716 [1] => 214 ) [10] => Array ( [0] => 20150717 [1] => 215 ) [11] => Array ( [0] => 20150718 [1] => 167 ) [12] => Array ( [0] => 20150719 [1] => 228 ) [13] => Array ( [0] => 20150720 [1] => 290 ) [14] => Array ( [0] => 20150721 [1] => 236 ) [15] => Array ( [0] => 20150722 [1] => 245 ) [16] => Array ( [0] => 20150723 [1] => 267 ) [17] => Array ( [0] => 20150724 [1] => 307 ) [18] => Array ( [0] => 20150725 [1] => 271 ) [19] => Array ( [0] => 20150726 [1] => 226 ) [20] => Array ( [0] => 20150727 [1] => 319 ) [21] => Array ( [0] => 20150728 [1] => 299 ) [22] => Array ( [0] => 20150729 [1] => 263 ) [23] => Array ( [0] => 20150730 [1] => 242 ) [24] => Array ( [0] => 20150731 [1] => 233 ) [25] => Array ( [0] => 20150801 [1] => 165 ) [26] => Array ( [0] => 20150802 [1] => 170 ) [27] => Array ( [0] => 20150803 [1] => 349 ) [28] => Array ( [0] => 20150804 [1] => 410 ) [29] => Array ( [0] => 20150805 [1] => 282 ) [30] => Array ( [0] => 20150806 [1] => 256 ) [31] => Array ( [0] => 20150807 [1] => 113 ) ) )
If I replace print_r($visits); with
foreach ($visits as $key => $val) {
echo $val;
}
I get the following which is more readable:
200analytics#gaDatahttps://www.googleapis.com/analytics/v3/data/ga?ids=ga:615743&dimensions=ga:date&metrics=ga:visits&start-date=2015-07-07&end-date=2015-08-07Array100032https://www.googleapis.com/analytics/v3/data/ga?ids=ga:615743&dimensions=ga:date&metrics=ga:visits&start-date=2015-07-07&end-date=2015-08-07ArrayArrayArrayArray
My question is, how do I access the Arrays within this Array?
I'd ideally like to print out the entire $visits array in something readable.
If you want this for debugging then output like this:
echo '<pre>';
print_r($visits);
echo '</pre>';
Other ways use array_walk_recursive()
You can use array_walk_recursive() to loop through each value of your array, e.g.
array_walk_recursive($visits, function($v, $k){
echo $v . "<br>";
});

Recursively remove elements from nested array looking for a specific value

I have the following nested array:
Array (
[0] => Array ( [0] => [1] => 51.212342,6.7834665 )
[1] => Array ( [0] => 28.8.2013 01:14:06 [1] => 51.2123822,6.7834572 )
[2] => Array ( [0] => 28.8.2013 15:11:53 [1] => 0,0 )
[3] => Array ( [0] => 28.8.2013 15:12:16 [1] => 0,0 )
[4] => Array ( [0] => 28.8.2013 15:36:06 [1] => 0,0 )
[5] => Array ( [0] => 28.8.2013 15:40:13 [1] => 41.117143,16.871871 )
[6] => Array ( [0] => 28.8.2013 15:40:14 [1] => 0,0 )
[7] => Array ( [0] => 28.8.2013 16:03:13 [1] => 0,0 )
[8] => Array ( [0] => 28.8.2013 16:11:19 [1] => 40.8205315914286,16.5500314957143 )
[9] => Array ( [0] => 28.8.2013 16:11:20 [1] => 0,0 )
[10] => Array ( [0] => 28.8.2013 16:11:40 [1] => 40.8205315914286,16.5500314957143 )
[11] => Array ( [0] => 28.8.2013 18:11:33 [1] => 45.4304359,12.3290189 )
[12] => Array ( [0] => 28.8.2013 18:11:34 [1] => 0,0 )
[13] => Array ( [0] => 28.8.2013 18:11:54 [1] => 45.4304456,12.3289609 )
[14] => Array ( [0] => 28.8.2013 18:11:55 [1] => 0,0 )
[15] => Array ( [0] => 29.8.2013 10:07:21 [1] => 51.212394,6.7834843 )
...
);
Here I need to remove all the elements that have "0,0" as their [$n][1] value. I tried this but some of the "0,0" are still there. Why?
for ($i = 0; $i < sizeof($locations); $i++) {
$key = array_search('0,0', $locations[$i]);
if ($key !== false) {
unset($locations[$i]);
$locations = array_values($locations);
}
}
Array (
[0] => Array ( [0] => [1] => 51.212342,6.7834665 )
[1] => Array ( [0] => 28.8.2013 01:14:06 [1] => 51.2123822,6.7834572 )
[2] => Array ( [0] => 28.8.2013 15:12:16 [1] => 0,0 )
[3] => Array ( [0] => 28.8.2013 15:40:13 [1] => 41.117143,16.871871 )
[4] => Array ( [0] => 28.8.2013 16:03:13 [1] => 0,0 )
[5] => Array ( [0] => 28.8.2013 16:11:19 [1] => 40.8205315914286,16.5500314957143 )
[6] => Array ( [0] => 28.8.2013 16:11:40 [1] => 40.8205315914286,16.5500314957143 )
[7] => Array ( [0] => 28.8.2013 18:11:33 [1] => 45.4304359,12.3290189 )
[8] => Array ( [0] => 28.8.2013 18:11:54 [1] => 45.4304456,12.3289609 )
[9] => Array ( [0] => 29.8.2013 10:07:21 [1] => 51.212394,6.7834843 )
[10] => Array ( [0] => 29.8.2013 10:07:56 [1] => 51.2123948,6.7834622 )
[11] => Array ( [0] => 29.8.2013 11:57:45 [1] => 51.21244537,6.78355515 )
[12] => Array ( [0] => 29.8.2013 11:58:27 [1] => 51.21238401,6.78352698 )
[13] => Array ( [0] => 29.8.2013 12:01:17 [1] => 51.2124044633333,6.78353637 )
[14] => Array ( [0] => 29.8.2013 12:11:18 [1] => 51.2124044633333,0.783536 )
[15] => Array ( [0] => 29.8.2013 12:12:39 [1] => 51.212416045,6.783523 )
...
);
One problem with your code is that sizeof($locations) changes every time you do a unset. So whenever you have two consecutive [$n][1] having "0,0", you are not able to detect that. Also your code is not looking at just[$n][1], its looking at all indexes in [$n][]
Use the below code:
$count = count($locations);
for ($i = 0; $i < $count; $i++) {
if ($locations[$i][1] == "0,0") {
unset($locations[$index]);
}
}
$locations = array_values($locations);
foreach ($locations as $index => $row) {
if ($locations[$index][1] == "0,0") unset($locations[$index]);
}
$locations = array_values($locations);

Categories