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);