how to get values from SimpleXml Object - php

SimpleXMLElement Object (
[results] => 2
[total_results] => 2
[plans] => SimpleXMLElement Object ( [plan] => Array ( [0] => SimpleXMLElement Object ( [id] => 1014 [type] => paid [name] => Silver [amount] => 1000.00 [interval] => 30 [notification_url] => http://www.google.com [free_trial] => 0 [occurrences] => 1 [num_customers] => 0 [status] => active ) [1] => SimpleXMLElement Object ( [id] => 1013 [type] => paid [name] => Gold [amount] => 500.00 [interval] => 30 [notification_url] => http://www.movebyu.com/ExpressEngine/index.php/?ACT=21 [free_trial] => 0 [occurrences] => 1 [num_customers] => 1 [status] => active ) ) )
),
How to get values of plans, amount from these, can any one help me?

Via XPath
http://php.net/manual/en/simplexmlelement.xpath.php

Related

Laravel Foreach with a multidimensional array

I'm using Laravel and I wonder how can I put this array in a foreach? for read it
stdClass Object ( [data] => Array ( [0] => stdClass Object ( [id] => 0001 [type] => Item [attributes] => stdClass Object ( [product_name] => ST Slotted Sport Brake Rotors [part_number] => st126.39027SL [mfr_part_number] => 126.39027SL [part_description] => StopTech Power Slot 00-04 Volvo S40/V40 Front Left Slotted Rotor [category] => Brakes, Rotors & Pads [subcategory] => Brake Rotors - Slotted [dimensions] => Array ( [0] => stdClass Object ( [box_number] => 1 [length] => 15 [width] => 15 [height] => 4 [weight] => 12 ) ) [brand_id] => 56 [brand] => Stoptech [price_group_id] => 129 [price_group] => Stoptech [active] => 1 [regular_stock] => [dropship_controller_id] => 19 [air_freight_prohibited] => [not_carb_approved] => [prop_65] => Unknown [warehouse_availability] => Array ( [0] => stdClass Object ( [location_id] => 01 [can_place_order] => 1 ) [1] => stdClass Object ( [location_id] => 02 [can_place_order] => 1 ) [2] => stdClass Object ( [location_id] => 59 [can_place_order] => 1 ) ) [thumbnail] => https://d5otzd52uv6zz.cloudfront.net/fa33cfb5-0c91-47de-9a49-67f4175a5bff-100.jpg [barcode] => 805890204282 ) ) [1] => stdClass Object ( [id] => 078595 [type] => Item [attributes] => stdClass Object ( [product_name] => RAD Clutch Fork Stop [part_number] => rad20-0262 [mfr_part_number] => 20-0262 [part_description] => Radium Engineering Mitsubishi Evo 8-10 Clutch Fork Stop [category] => Drivetrain [subcategory] => Clutch Uncategorized [dimensions] => Array ( [0] => stdClass Object ( [box_number] => 1 [length] => 4.75 [width] => 4.5 [height] => 4.5 [weight] => 0.5 ) ) [brand_id] => 148 [brand] => Radium Engineering [price_group_id] => 406 [price_group] => Radium Engineering [active] => 1 [regular_stock] => 1 [dropship_controller_id] => 81 [air_freight_prohibited] => [not_carb_approved] => [prop_65] => Unknown [warehouse_availability] => Array ( [0] => stdClass Object ( [location_id] => 01 [can_place_order] => 1 ) [1] => stdClass Object ( [location_id] => 02 [can_place_order] => 1 ) [2] => stdClass Object ( [location_id] => 59 [can_place_order] => 1 ) ) [thumbnail] => https://d32vzsop7y1h3k.cloudfront.net/adb8244ed2d562e078c5ce2928750f2a.JPG ) ) [2] => stdClass Object ( [id] => 095906 [type] => Item [attributes] => stdClass Object ( [product_name] => MLR Trans Rebuild Kits [part_number] => mlr88075K [mfr_part_number] => 88075K [part_description] => McLeod Performance Transmission Rebuild Kit w/ Kolene Steels 4L80E 1997-2011 - Stage 1 [category] => Drivetrain [subcategory] => Transmission Rebuild Kits [dimensions] => Array ( [0] => stdClass Object ( [box_number] => 1 [length] => 24 [width] => 16 [height] => 5.25 [weight] => 14.75 ) ) [brand_id] => 169 [brand] => McLeod Racing [price_group_id] => 456 [price_group] => McLeod Racing [active] => 1 [regular_stock] => [dropship_controller_id] => 116 [air_freight_prohibited] => [not_carb_approved] => [prop_65] => Unknown [warehouse_availability] => Array ( [0] => stdClass Object ( [location_id] => 01 [can_place_order] => 1 ) [1] => stdClass Object ( [location_id] => 02 [can_place_order] => 1 ) [2] => stdClass Object ( [location_id] => 59 [can_place_order] => 1 ) ) ) ) [3] => stdClass Object ( [id] => 1 [type] => Item [attributes] => stdClass Object ( [product_name] => TXS Boost Controllers [part_number] => txs-BC-HPBC [mfr_part_number] => txs-BC-HPBC [part_description] => Turbo XS High Performance Boost Controller [category] => Forced Induction [subcategory] => Boost Controllers [dimensions] => Array ( [0] => stdClass Object ( [box_number] => 1 [length] => 4.75 [width] => 3.25 [height] => 2.25 [weight] => 0.5 ) ) [brand_id] => 63 [brand] => Turbo XS [price_group_id] => 130 [price_group] => Turbo XS [active] => 1 [regular_stock] => 1 [dropship_controller_id] => 0 [air_freight_prohibited] => [not_carb_approved] => [prop_65] => Unknown [warehouse_availability] => Array ( [0] => stdClass Object ( [location_id] => 01 [can_place_order] => 1 ) [1] => stdClass Object ( [location_id] => 02 [can_place_order] => 1 ) [2] => stdClass Object ( [location_id] => 59 [can_place_order] => 1 ) ) [thumbnail] => https://d5otzd52uv6zz.cloudfront.net/92670bde-a650-4ae6-a53e-0da8b2a26d1c-100.jpg [barcode] => 053176487038 ) )
Thanks!
Just loop through your data with
foreach($yourvar->data as $key=> $data){
echo $data->id;
}
If you get an StdClass object it means you're iterating over an object through -> if you've an array you can print through $data['key']

How to retrieve object from xml

I am trying to get the value of bank_name in php. Can't get it to display.
stdClass Object ( [account_id] => 43726384 [name] => Account Name [state] => action_required [description] => [owner_user_id] =>[type] => personal [create_time] => 1477684534 [disablement_time] => [country] => US [currencies] => Array ( [0] => USD ) [action_reasons] => Array ( [0] => kyc [1] => bank_account ) [disabled_reasons] => Array ( ) [image_uri] => [supported_card_types] => Array ( [0] => visa [1] => mastercard [2] => american_express [3] => discover [4] => jcb [5] => diners_club ) [gaq_domains] => Array ( [0] => ) [balances] => Array ( [0] => stdClass Object ( [balance] => 0 [currency] => USD [disputed_amount] => 0 [incoming_pending_amount] => 0 [outgoing_pending_amount] => 0 [reserved_amount] => 0 [bank_name] => Bank Of America [withdrawal_next_time] => [withdrawal_period] => [withdrawal_type] => ) ) [statuses] => Array ( [0] => stdClass Object ( [currency] => USD [incoming_payments_status] => ok [outgoing_payments_status] => paused [account_review_status] => not_requested ) ) )
It's not very clear if you display data that way, but I think this would be the way to access to bank_name:
$bankName = $object->balances[0]->bank_name;
(If it doesn't work, please show the XML before parsing it to an object)

anyone to help me convert stdClass Object to an array in php

stdClass Object ( [Order] => stdClass Object
( [id] => c62f5d272ghjjgd346lmn34
[type] => [status] => placed
[keys_status] => Keys were generated )
[Products] => Array ( [0] => stdClass Object ( [name] => Mobile Security
[devices] => 1 [months] => 12 [quantity] => 1 [msrp_price] => 9 [discount] => 0.0 [end_user_price] => 9 [reseller_margin] => 0.0 [reseller_price] => 9.01[partner_margin] => 90 [partner_price] => 0.9[Keys] => Array ( [0] => stdClass Object ( [product_id] => 21 [product_name] => Mobile Security [key] => 1234) ) ) ) [Customer] => stdClass Object ( [name] => IPPS [phone] => 25667587576 [address] => Bishop willis Street [contact_person] => Mukama Gordon [city] => Kigali [zipcode] => 250 [country_id] => 202 [state_id] => [email] => mukamatest#test.com ) [Keys] => Array ( [0] => stdClass Object ( [product_id] => 21 [product_name] => Mobile Security [key] => 1234 ) ) )
This is a really hacky way of doing it, but try
$arrayversion = json_decode(json_encode($objectversion), true);
Then
print_r($arrayversion); will be an array.

How to get specific array values from moltin get a product

I just started using moltin and learn to developing it.
In the getting started there is code that to show product
<?php
$product = \Product::Find(['slug' => 'baju']);
?>
documentation link https://moltin.com/getting-started/php
and the result is when I print array
<?php
print_r($product);
?>
It shows like this
Array ( [status] => 1 [result] => Array ( [0] => Array ( [id] => 1207658536885027482 [order] => [created_at] => 2016-03-17 03:08:58 [updated_at] => 2016-03-17 03:08:58 [sku] => baju-1 [title] => baju [slug] => baju [sale_price] => 0 [status] => Array ( [value] => Live [data] => Array ( [key] => 1 [value] => Live ) ) [category] => Array ( [value] => Uncategorized [data] => Array ( [1134518259857490806] => Array ( [id] => 1134518259857490806 [order] => [created_at] => 2015-12-07 05:12:15 [updated_at] => 2015-12-07 05:12:15 [parent] => [slug] => uncategorized [status] => Array ( [value] => Live [data] => Array ( [key] => 1 [value] => Live ) ) [title] => Uncategorized [description] => Products that do not fit into another category ) ) ) [stock_level] => 10 [stock_status] => Array ( [value] => In Stock [data] => Array ( [key] => 1 [value] => In Stock ) ) [description] => baju [requires_shipping] => Array ( [value] => Yes [data] => Array ( [key] => 1 [value] => Yes ) ) [weight] => 0 [height] => 0 [width] => 0 [depth] => 0 [catalog_only] => Array ( [value] => No [data] => Array ( [key] => 0 [value] => No ) ) [tax_band] => Array ( [value] => Default [data] => Array ( [id] => 1134518260142703561 [title] => Default [description] => [rate] => 20 [created_at] => [updated_at] => ) ) [collection] => [brand] => [price] => Array ( [value] => £1.20 [data] => Array ( [formatted] => Array ( [with_tax] => £1.20 [without_tax] => £1.00 [tax] => £0.20 ) [rounded] => Array ( [with_tax] => 1.2 [without_tax] => 1 [tax] => 0.2 ) [raw] => Array ( [with_tax] => 1.2 [without_tax] => 1 [tax] => 0.2 ) ) ) [is_variation] => [modifiers] => Array ( ) [images] => Array ( ) ) ) [pagination] => Array ( [total] => 1 [current] => 1 [limit] => 10 [offset] => 0 [from] => 1 [to] => 1 [offsets] => Array ( [first] => [previous] => [next] => [last] => ) [links] => Array ( [first] => [previous] => [next] => [last] => ) ) ) status = 1
How to get specific array from this list?
I already try
<?php
echo $product[0]['id'];
?>
it didn't work, show error Notice: Undefined offset: 0
you have a multidimensional array under the result key
access it the following way:
$product['result'][0]['id']
Give this a try:
echo $product['result'][0]['id'];

Comparing and returning only matching items in arrays

I am looking for a way (in PHP) to use two different arrays to get results for matching items. The arrays are sport stats. One array contains the definition of the stats and the other is the stat_id and a stat value for a player. The matching item in each array is stat_id. I am looking to get back results of only matching items in both arrays.
The first array contains stat definitions. Here is a potion of the stats definition array...
[stat] => Array
(
[0] => SimpleXMLElement Object
(
[stat_id] => 4
[enabled] => 1
[name] => Passing Yards
[display_name] => Pass Yds
[sort_order] => 1
[position_type] => O
)
[1] => SimpleXMLElement Object
(
[stat_id] => 5
[enabled] => 1
[name] => Passing Touchdowns
[display_name] => Pass TD
[sort_order] => 1
[position_type] => O
)
[2] => SimpleXMLElement Object
(
[stat_id] => 6
[enabled] => 1
[name] => Interceptions
[display_name] => Int
[sort_order] => 0
[position_type] => O
)
[3] => SimpleXMLElement Object
(
[stat_id] => 9
[enabled] => 1
[name] => Rushing Yards
[display_name] => Rush Yds
[sort_order] => 1
[position_type] => O
)
[4] => SimpleXMLElement Object
(
[stat_id] => 10
[enabled] => 1
[name] => Rushing Touchdowns
[display_name] => Rush TD
[sort_order] => 1
[position_type] => O
)
[5] => SimpleXMLElement Object
(
[stat_id] => 12
[enabled] => 1
[name] => Reception Yards
[display_name] => Rec Yds
[sort_order] => 1
[position_type] => O
)
[6] => SimpleXMLElement Object
(
[stat_id] => 13
[enabled] => 1
[name] => Reception Touchdowns
[display_name] => Rec TD
[sort_order] => 1
[position_type] => O
)
[7] => SimpleXMLElement Object
(
[stat_id] => 15
[enabled] => 1
[name] => Return Touchdowns
[display_name] => Ret TD
[sort_order] => 1
[position_type] => O
)
[8] => SimpleXMLElement Object
(
[stat_id] => 16
[enabled] => 1
[name] => 2-Point Conversions
[display_name] => 2-PT
[sort_order] => 1
[position_type] => O
)
[9] => SimpleXMLElement Object
(
[stat_id] => 18
[enabled] => 1
[name] => Fumbles Lost
[display_name] => Fum Lost
[sort_order] => 0
[position_type] => O
)
[10] => SimpleXMLElement Object
(
[stat_id] => 57
[enabled] => 1
[name] => Offensive Fumble Return TD
[display_name] => Fum Ret TD
[sort_order] => 1
[position_type] => O
)
[11] => SimpleXMLElement Object
(
[stat_id] => 19
[enabled] => 1
[name] => Field Goals 0-19 Yards
[display_name] => FG 0-19
[sort_order] => 1
[position_type] => K
)
[12] => SimpleXMLElement Object
(
[stat_id] => 20
[enabled] => 1
[name] => Field Goals 20-29 Yards
[display_name] => FG 20-29
[sort_order] => 1
[position_type] => K
)
)
Here is the player stat values array.
[stat] => Array
(
[0] => SimpleXMLElement Object
(
[stat_id] => 4
[value] => 0
)
[1] => SimpleXMLElement Object
(
[stat_id] => 5
[value] => 0
)
[2] => SimpleXMLElement Object
(
[stat_id] => 6
[value] => 0
)
[3] => SimpleXMLElement Object
(
[stat_id] => 9
[value] => 0
)
[4] => SimpleXMLElement Object
(
[stat_id] => 10
[value] => 0
)
[5] => SimpleXMLElement Object
(
[stat_id] => 12
[value] => 0
)
[6] => SimpleXMLElement Object
(
[stat_id] => 13
[value] => 0
)
[7] => SimpleXMLElement Object
(
[stat_id] => 15
[value] => 0
)
[8] => SimpleXMLElement Object
(
[stat_id] => 16
[value] => 0
)
[9] => SimpleXMLElement Object
(
[stat_id] => 18
[value] => 0
)
[10] => SimpleXMLElement Object
(
[stat_id] => 57
[value] => 0
)
)
I think you are looking for one of the array_intersect functions:
http://www.php.net/manual/en/function.array-intersect.php
http://www.php.net/manual/en/function.array-intersect-assoc.php
http://www.php.net/manual/en/function.array-intersect-key.php
These allow you to compare arrays and find the overlap based on matching values, matching keys, or both.

Categories