I am trying to get list of branches of the shipping company from their php API.The output from API I get is array which contains objects and I would like to convert these objects to arrays and save whole array to database. Example of the output is below. As I say I would like convert these objects into array and save it to database. Can you help me please? I tried some tips from stackoverflow but I have't fount anything yet. Thank you
Array
(
[email] => info#ulozenka.cz
[phone] => +420777208204
[hours] => UlozenkaLib\APIv3\Model\Branch\OpeningHours\OpeningHours Object
(
[regular:protected] => UlozenkaLib\APIv3\Model\Branch\OpeningHours\RegularOpeningHours Object
(
[monday:protected] => Array
(
[0] => UlozenkaLib\APIv3\Model\Branch\OpeningHours\Hours Object
(
[open:protected] => 10:00
[close:protected] => 16:00
)
)
)
[exceptions:protected] => Array
(
)
)
[links] => Array
(
[0] => UlozenkaLib\APIv3\Model\Link Object
(
[resourceName:protected] => website
[url:protected] => https://www.ulozenka.cz/pobocky/50020/jablonec-nad-nisou-machova-877-4-czc-cz
)
[1] => UlozenkaLib\APIv3\Model\Link Object
(
[resourceName:protected] => picture
[url:protected] => https://www.ulozenka.cz/cdn/images/branches/destination/50020.png
)
[2] => UlozenkaLib\APIv3\Model\Link Object
(
[resourceName:protected] => self
[url:protected] => https://api.ulozenka.cz/v3/branches/50020
)
)
)
So the converted array should be
Array
(
[email] => info#ulozenka.cz
[phone] => +420777208204
[hours] => array
(
[regular] => Array
(
[monday] => Array
(
[0] => Array
(
[open] => 10:00
[close] => 16:00
)
)
)
[exceptions] => Array()
)
[links] => Array
(
[0] => Array
(
[resourceName] => website
[url] => https://www.ulozenka.cz/pobocky/50020/jablonec-nad-nisou-machova-877-4-czc-cz
)
[1] => Array
(
[resourceName] => picture
[url] => https://www.ulozenka.cz/cdn/images/branches/destination/50020.png
)
[2] => Array
(
[resourceName] => self
[url] => https://api.ulozenka.cz/v3/branches/50020
)
)
)
Related
When I run reports in adobe experience cloud for few metrics with page dimension, all metrics are coming correctly, but when I am trying to pull same data via api, few revenue metrics(e.g carts,orders,cartadditions,productinstances) are coming as zero.
I am using curl request to fetch data with access token generated from JWT (Service Account) Authentication.
Here is the my array for post request -
Array
(
[rsid] => XXX
[dimension] => variables/page
[globalFilters] => Array
(
[0] => Array
(
[type] => dateRange
[dateRange] => 2022-04-01T00:00:00.000/2022-04-02T00:00:00.000
)
)
[metricContainer] => Array
(
[metrics] => Array
(
[0] => Array
(
[id] => metrics/pageviews
)
[1] => Array
(
[id] => metrics/visitors
)
[2] => Array
(
[id] => metrics/exits
)
[3] => Array
(
[id] => metrics/bounces
)
[4] => Array
(
[id] => metrics/entries
)
[5] => Array
(
[id] => metrics/carts
)
[6] => Array
(
[id] => metrics/orders
)
[7] => Array
(
[id] => metrics/cartadditions
)
[8] => Array
(
[id] => metrics/productinstances
)
)
[metricFilters] => Array
(
)
)
[settings] => Array
(
[metricSort] => desc
[limit] => 5000
[page] => 0
[countRepeatInstances] => 1
)
)
when I try to fetch almost the same metrics but on daterange dimension then they are coming fine.
Array
(
[rsid] => XXX
[dimension] => variables/daterangeday
[globalFilters] => Array
(
[0] => Array
(
[type] => dateRange
[dateRange] => 2022-04-01T00:00:00.000/2022-04-02T00:00:00.000
)
)
[metricContainer] => Array
(
[metrics] => Array
(
[0] => Array
(
[id] => metrics/visitors
)
[1] => Array
(
[id] => metrics/bounces
)
[2] => Array
(
[id] => metrics/entries
)
[3] => Array
(
[id] => metrics/carts
)
[4] => Array
(
[id] => metrics/orders
)
[5] => Array
(
[id] => metrics/cartadditions
)
[6] => Array
(
[id] => metrics/productinstances
)
)
[metricFilters] => Array
(
)
)
[settings] => Array
(
[metricSort] => desc
[limit] => 5000
[page] => 0
[countRepeatInstances] => 1
)
)
I am new to Adobe and have very limited access to Adobe experience cloud. What could be the issue.
Array
(
[3M] => Array
(
[0] => Array
(
[name] => 3M
[price] => 158.15
)
[440] => Array
(
[name] => 3M
[price] => 156.69
)
)
[AO Smith] => Array
(
[1] => Array
(
[name] => AO Smith
[price] => 47.29
)
[441] => Array
(
[name] => AO Smith
[price] => 47.19
)
)
So I have an Array that is above^^^. I would like to get it into a condensed array format. I need a function that loops through the above and outputs it in the format below.
Array
(
[3M] => Array
(
[price1] => 158.15
[price2] => 156.69
)
[AO Smith] => Array
(
[price1] => 47.29
[price2] => 47.19
)
)
Above is how I would like the data oriented.
Thanks for the help.
What you'll find is the format you want is not good and not as usable or flexible. This however will give you a better format. name and price are descriptive, price1 and price2 are no different than 0 and 1:
foreach($array as $key => $values) {
$result[$key] = array_column($values, 'price');
}
Yields:
Array
(
[3M] => Array
(
[0] => 158.15
[1] => 156.69
)
[AO Smith] => Array
(
[0] => 47.29
[1] => 47.19
)
)
Yesterday I asked this question: How to create this JSON in PHP?
This works perfectly and now I have to parse the reply from the server - he gives my an array like this example below. How can I run through this and get things like startTime and the following name?
And why does
<?php $json = file_get_contents("URL");
$data = json_decode($json);
$time1 = $data[0][1]['startTime'];
?>
not work? Please help me to understand this and please explain me how I can get to an solution next time when I have an array or JSON to parse and what you do when you have to parse things like this.
And is there any tool available, where you post the code and can click on the requested item and it shows you the code how to get this?
Array from server:
Array (
[jsonrpc] => 2.0
[id] => 6d41c7a9e35e441c4e9b66e267523927
[result] => Array (
[0] => Array (
[id] => 403230
[date] => 20190923
[startTime] => 1240
[endTime] => 1330
[kl] => Array (
[0] => Array (
[name] => Radiodata
)
)
[te] => Array (
[0] => Array (
[name] => MUS
[longname] => Music
)
)
[su] => Array (
[0] => Array (
[name] => MUS
[longname] => Music
)
)
[ro] => Array (
[0] => Array (
[id] => 31
)
)
[activityType] => Music-Only
)
[1] => Array (
[id] => 403231
[date] => 20190923
[startTime] => 1335
[endTime] => 1425
[kl] => Array (
[0] => Array (
[name] => Radiodata
)
)
[te] => Array (
[0] => Array (
[name] => MUS
[longname] => Music
)
)
[su] => Array (
[0] => Array (
[name] => MUS
[longname] => Music
)
)
[ro] => Array (
[0] => Array (
[id] => 31
)
)
[activityType] => Music-Only
)
[2] => Array (
[id] => 407790
[date] => 20190923
[startTime] => 1520
[endTime] => 1610
[kl] => Array (
[0] => Array (
[name] => Radiodata
)
)
[te] => Array (
[0] => Array (
[name] => MUS
[longname] => Music
)
)
[su] => Array (
[0] => Array (
[name] => MUS
[longname] => Music
)
)
[ro] => Array (
[0] => Array (
[id] => 24
)
)
[activityType] => Music-Only
)
[3] => Array (
[id] => 407791
[date] => 20190923
[startTime] => 1610
[endTime] => 1700
[kl] => Array (
[0] => Array (
[name] => Radiodata
)
)
[te] => Array (
[0] => Array (
[name] => MUS
[longname] => Music
)
)
[su] => Array (
[0] => Array (
[name] => MUS
[longname] => Music
)
)
[ro] => Array (
[0] => Array (
[id] => 24
)
)
[activityType] => Radiodata
)
)
Basically you parse the json with wrong key. Check this code which will help you
<?php
$json = file_get_contents("URL");
$data = json_decode($json,true);
foreach($data['result'] as $resData)
{
$startTime=$resData['startTime'];
$endtime=$resData['endTime'];
echo($startTime);
foreach($resData['kl'] as $klData)
{
$klname=$klData['name'];
echo($klname);
echo '<br>';
}
foreach($resData['te'] as $teData)
{
$tename=$teData['name'];
$echo($tename);
echo '<br>';
}
}
?>
Output:
Radiodata
MUS
Radiodata
MUS
Radiodata
MUS
Radiodata
MUS
I am using oxford dictionary API to develop a dictionary function on my website. I have successfully implemented the function as I can search the word and pull the results from the API. However, I have a problem with saving these data into MySQL database.
This is what I get when I print_r($dic_array):
Array
(
[metadata] => Array
(
[provider] => Oxford University Press
)
[results] => Array
(
[0] => Array
(
[id] => love
[language] => en
[lexicalEntries] => Array
(
[0] => Array
(
[entries] => Array
(
[0] => Array
(
[etymologies] => Array
(
[0] => Old English lufu, of Germanic origin; from an Indo-European root shared by Sanskrit lubhyati ‘desires’, Latin libet ‘it is pleasing’, libido ‘desire’, also by leave and lief
)
[grammaticalFeatures] => Array
(
[0] => Array
(
[text] => Mass
[type] => Countability
)
)
[homographNumber] => 000
[senses] => Array
(
[0] => Array
(
[definitions] => Array
(
[0] => a strong feeling of affection
)
[examples] => Array
(
[0] => Array
(
[text] => their love for their country
)
[1] => Array
(
[text] => babies fill parents with intense feelings of love
)
)
[id] => m_en_gbus0596690.007
[subsenses] => Array
(
[0] => Array
(
[definitions] => Array
(
[0] => a strong feeling of affection and sexual attraction for someone
)
[examples] => Array
(
[0] => Array
(
[text] => they were both in love with her
)
[1] => Array
(
[text] => we were slowly falling in love
)
)
[id] => m_en_gbus0596690.009
)
[1] => Array
(
[definitions] => Array
(
[0] => affectionate greetings conveyed to someone on one's behalf
)
[examples] => Array
(
[0] => Array
(
[text] => give her my love
)
)
[id] => m_en_gbus0596690.010
)
[2] => Array
(
[definitions] => Array
(
[0] => a formula for ending an affectionate letter
)
[examples] => Array
(
[0] => Array
(
[text] => take care, lots of love, Judy
)
)
[id] => m_en_gbus0596690.011
)
[3] => Array
(
[definitions] => Array
(
[0] => a personified figure of love, often represented as Cupid.
)
[domains] => Array
(
[0] => Roman History
)
[id] => m_en_gbus0596690.012
[variantForms] => Array
(
[0] => Array
(
[text] => Love
)
)
)
)
)
[1] => Array
(
[definitions] => Array
(
[0] => a great interest and pleasure in something
)
[examples] => Array
(
[0] => Array
(
[text] => his love for football
)
[1] => Array
(
[text] => we share a love of music
)
)
[id] => m_en_gbus0596690.016
)
[2] => Array
(
[definitions] => Array
(
[0] => a person or thing that one loves
)
[examples] => Array
(
[0] => Array
(
[text] => she was the love of his life
)
[1] => Array
(
[text] => their two great loves are tobacco and whisky
)
)
[id] => m_en_gbus0596690.018
[notes] => Array
(
[0] => Array
(
[text] => count noun
[type] => grammaticalNote
)
)
[subsenses] => Array
(
[0] => Array
(
[definitions] => Array
(
[0] => a friendly form of address
)
[examples] => Array
(
[0] => Array
(
[text] => it's all right, love
)
)
[id] => m_en_gbus0596690.021
[regions] => Array
(
[0] => British
)
[registers] => Array
(
[0] => informal
)
)
[1] => Array
(
[definitions] => Array
(
[0] => used in affectionate requests
)
[examples] => Array
(
[0] => Array
(
[text] => don't fret, there's a love
)
)
[id] => m_en_gbus0596690.022
[notes] => Array
(
[0] => Array
(
[text] => "a love"
[type] => wordFormNote
)
)
[registers] => Array
(
[0] => informal
)
)
)
)
[3] => Array
(
[definitions] => Array
(
[0] => (in tennis, squash, and some other sports) a score of zero; nil
)
[domains] => Array
(
[0] => Tennis
)
[examples] => Array
(
[0] => Array
(
[text] => love fifteen
)
)
[id] => m_en_gbus0596690.024
)
)
)
)
[language] => en
[lexicalCategory] => Noun
[pronunciations] => Array
(
[0] => Array
(
[audioFile] => http://audio.oxforddictionaries.com/en/mp3/love_gb_1.mp3
[dialects] => Array
(
[0] => British English
)
[phoneticNotation] => IPA
[phoneticSpelling] => lʌv
)
)
[text] => love
)
[1] => Array
(
[entries] => Array
(
[0] => Array
(
[grammaticalFeatures] => Array
(
[0] => Array
(
[text] => Transitive
[type] => Subcategorization
)
)
[homographNumber] => 001
[senses] => Array
(
[0] => Array
(
[definitions] => Array
(
[0] => feel deep affection or sexual love for (someone)
)
[examples] => Array
(
[0] => Array
(
[text] => do you love me?
)
)
[id] => m_en_gbus0596690.026
[subsenses] => Array
(
[0] => Array
(
[definitions] => Array
(
[0] => like or enjoy very much
)
[examples] => Array
(
[0] => Array
(
[text] => I just love dancing
)
[1] => Array
(
[text] => I'd love a cup of tea
)
)
[id] => m_en_gbus0596690.032
)
)
)
)
)
)
[language] => en
[lexicalCategory] => Verb
[pronunciations] => Array
(
[0] => Array
(
[audioFile] => http://audio.oxforddictionaries.com/en/mp3/love_gb_1.mp3
[dialects] => Array
(
[0] => British English
)
[phoneticNotation] => IPA
[phoneticSpelling] => lʌv
)
)
[text] => love
)
)
[type] => headword
[word] => love
)
)
)
To echo out the result on my website:
foreach($dic_array['results'][0]['lexicalEntries'] as $word) {
echo '<hr><div class="partOfSpeech"><p><b>'.$word['lexicalCategory'].'</b></p></div>';
foreach($word['entries'][0]['senses'] as $definition) {
echo '<p class="definition">'.$definition['definitions'][0].'</p>';
if (!empty($definition['subsenses'])) {
foreach($definition['subsenses'] as $subsenses) {
echo '<p class="subDefinition" style="padding-left: 10px; "> -'.$subsenses['definitions'][0].'</p>';
}
}
}
}
This is not an answer. I am the author who asks this question. Because I cannot write over 30000 characters, I use some extra content here.
This is what I tried:
foreach($dic_array['results'][0]['lexicalEntries'] as $word) {
$lexicalCategory = serialize($word['lexicalCategory']);
foreach($word['entries'][0]['senses'] as $definition) {
$wordDefinition = serialize($definition['definitions'][0]);
if (!empty($definition['subsenses'])) {
foreach($definition['subsenses'] as $subsenses) {
$wordSubdefinition = serialize($subsenses['definitions'][0]);
if(!empty($_POST['save'])) {
$sth = $this->db->prepare('INSERT INTO dictionary
(`word`, `partOfSpeech`, `definition`, `subDefinition`)
VALUES (:word, :partOfSpeech, :definition, :subDefinition)
');
$sth->execute(array(
':word' => $data['word'],
':partOfSpeech' => $lexicalCategory,
':definition' => $wordDefinition,
':subDefinition' => $wordSubdefinition
));
}
}
}
}
}
I know it is too nested but once I can get this done, I will separate this into several functions.
I have an xml source that brings me some data each time. I parse the xml with php's simpleXML and the generated array looks like the one below. My problem is that i need to sort the array ascending based on the value that carries the time.
Array
(
[0] => SimpleXMLElement Object
(
[dict] => Array
(
[0] => SimpleXMLElement Object
(
[key] => Array
(
[0] => channel
[1] => title
[2] => time
)
[string] => Array
(
[0] => OTE SPORT 3
[1] => ΕΡΓΟΤΕΛΗΣ - ΤΡΙΚΑΛΑ
[2] => 20:00
[3] => Ποδόσφαιρο
)
)
[1] => SimpleXMLElement Object
(
[key] => Array
(
[0] => channel
[1] => title
[2] => time
)
[string] => Array
(
[0] => NOVASPORTS 1
[1] => ΠΛΑΤΑΝΙΑΣ - ΟΛΥΜΠΙΑΚΟΣ
[2] => 19:30
)
)
)
)
[1] => SimpleXMLElement Object
(
[dict] => Array
(
[0] => SimpleXMLElement Object
(
[key] => Array
(
[0] => channel
[1] => title
[2] => time
)
[string] => Array
(
[0] => NOVASPORTS 2
[1] => ΚΟΛΟΣΣΟΣ - ΟΛΥΜΠΙΑΚΟΣ
[2] => 16:00
[3] => Μπάσκετ
)
)
)
)
)