Convert string format to LatLng format using PHP - 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
)
)
Related
Calculate the sum of columns with PHP [duplicate]
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.
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); }
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);
php array_unique bug in 2d ARRAY
I'm working on Array list with have many duplication I use array_unique foreach ($aData as $test) { preg_match( "~http://www.site.com/.*?/~", $test,$match) ; $a[] = $match; } output Array ( [0] => Array ( [0] => */liars-all-2013-hdrip-xvid-s4a/ ) [1] => Array ( [0] => */liars-all-2013-hdrip-xvid-s4a/ ) [2] => Array ( ) [3] => Array ( [0] => */liars-all-2013-hdrip-xvid-s4a/ ) [4] => Array ( [0] => */mt-zion-2013-dvdrip-xvid-fihvid/ ) [5] => Array ( [0] => */mt-zion-2013-dvdrip-xvid-fihvid/ ) [6] => Array ( [0] => */mt-zion-2013-dvdrip-xvid-fihvid/ ) [7] => Array ( [0] => */the-ghastly-love-of-johnny-x-2012-webrip-xvid-fan0n/ ) [8] => Array ( [0] => */the-ghastly-love-of-johnny-x-2012-webrip-xvid-fan0n/ ) [9] => Array ( [0] => */the-ghastly-love-of-johnny-x-2012-webrip-xvid-fan0n/ ) [10] => Array ( [0] => */kung-fu-panda-good-croc-bad-croc-2013-dvdrip-x264-ac3-deep1007/ ) [11] => Array ( [0] => */kung-fu-panda-good-croc-bad-croc-2013-dvdrip-x264-ac3-deep1007/ ) [12] => Array ( [0] => */kung-fu-panda-good-croc-bad-croc-2013-dvdrip-x264-ac3-deep1007/ ) [13] => Array ( [0] => */a-viking-saga-the-darkest-day-2013-1080p-bluray-x264-ulshd/ ) [14] => Array ( [0] => */a-viking-saga-the-darkest-day-2013-1080p-bluray-x264-ulshd/ ) [15] => Array ( [0] => */a-viking-saga-the-darkest-day-2013-1080p-bluray-x264-ulshd/ ) [16] => Array ( [0] => */dead-man-down-2013-extras-720p-bluray-x264-phd/ ) [17] => Array ( [0] => */dead-man-down-2013-extras-720p-bluray-x264-phd/ ) [18] => Array ( [0] => */dead-man-down-2013-extras-720p-bluray-x264-phd/ ) [19] => Array ( [0] => */spider-baby-1968-720p-bluray-x264-geckos/ ) [20] => Array ( [0] => */spider-baby-1968-720p-bluray-x264-geckos/ ) [21] => Array ( [0] => */spider-baby-1968-720p-bluray-x264-geckos/ ) [22] => Array ( [0] => */drift-2013-bluray-720p-750mb-direct-download/ ) [23] => Array ( [0] => */drift-2013-bluray-720p-750mb-direct-download/ ) [24] => Array ( [0] => */drift-2013-bluray-720p-750mb-direct-download/) [25] => Array ( [0] => */beautiful-creatures-2013-720p/ ) [26] => Array ( [0] => */beautiful-creatures-2013-720p/ ) [27] => Array ( [0] => */beautiful-creatures-2013-720p/ ) [28] => Array ( [0] => */death-race-3-inferno-2012-bluray-720p-direct-download/ ) [29] => Array ( [0] => */death-race-3-inferno-2012-bluray-720p-direct-download/ ) [30] => Array ( [0] => */death-race-3-inferno-2012-bluray-720p-direct-download/ ) ) It's look like array_unique cant go deep in to array like : []**[x]** so only thing i get after array_unique is my first [0][string] I tried to use only $match but its only show me last string which is useless So how could I resolve this BUG?
By default array_unique compares the items as if they are string, which means that it actually converts the arrays to string (and any array casted to string will be the same - the string 'Array'). So you have to do: $a = array_unique($a, SORT_REGULAR)