从php数组中提取值
我有以下数据数组,我正在尝试访问跟踪编号字段 比如: $array->meta_data->TrackingNumber 3个小时后,我找不到访问它的方法 非常感谢您的帮助 array ( 'id' => 448, 'parent_id' => 0, 'status' => 'completed', 'currency' => 'GBP', 'version' => '3.7.1', 'prices_include_tax' => true, 'meta_data' => array ( 0 => array ( 'id' => 8041, 'key' => 'is_vat_exempt', 'value' => 'no', ), 1 => array ( 'id' => 8043, 'key' => '_wpam_id', 'value' => '4', ), 2 => array ( 'id' => 8046, 'key' => '_woo_pp_txnData', 'value' => array ( 'refundable_txns' => array ( 0 => array ( 'txnID' => '1U998392V9620752U', 'amount' => '5.95', 'refunded_amount' => 0, 'status' => 'Completed', ), ), 'txn_type' => 'sale', ), ), 3 => array ( 'id' => 8056, 'key' => 'Payer PayPal address', 'value' => 'anthony@befive.co.uk', ), 4 => array ( 'id' => 8057, 'key' => 'Payer first name', 'value' => 'Anthony', ), 5 => array ( 'id' => 8058, 'key' => 'Payer last name', 'value' => 'Evans', ), 6 => array ( 'id' => 8059, 'key' => 'Payment type', 'value' => 'instant', ), 7 => array ( 'id' => 8060, 'key' => '_paypal_status', 'value' => 'completed', ), 8 => array ( 'id' => 8061, 'key' => '_paypal_transaction_fee', 'value' => '0.47', ), 9 => array ( 'id' => 8290, 'key' => 'TrackingNumber', 'value' => '10046182', ), 10 => array ( 'id' => 8291, 'key' => 'CarrierName', 'value' => 'SEABOURNE', ), 11 => array ( 'id' => 10349, 'key' => '_alg_wc_custom_order_number', 'value' => '6', ), ), 'line_items' => array ( 48 => array ( ), ), 'tax_lines' => array ( 50 => array ( ), ), 'shipping_lines' => array ( 49 => array ( ), ), 'fee_lines' => array ( ), 'coupon_lines' => array ( 51 => array ( ), ), )从php数组中提取值,php,arrays,Php,Arrays,我有以下数据数组,我正在尝试访问跟踪编号字段 比如: $array->meta_data->TrackingNumber 3个小时后,我找不到访问它的方法 非常感谢您的帮助 array ( 'id' => 448, 'parent_id' => 0, 'status' => 'completed', 'currency' => 'GBP', 'version' => '3.7.1', 'prices_include_tax'
您试图使用$array->value访问数组,但正确的语法应该是$array['value'] 我会在元数据中循环,检查每个键是否等于跟踪编号,然后回显或对结果执行任何操作
<?php
$test =array (
'id' => 448,
'parent_id' => 0,
'status' => 'completed',
'currency' => 'GBP',
'version' => '3.7.1',
'prices_include_tax' => true,
'meta_data' =>
array (
0 =>
array (
'id' => 8041,
'key' => 'is_vat_exempt',
'value' => 'no',
),
1 =>
array (
'id' => 8043,
'key' => '_wpam_id',
'value' => '4',
),
2 =>
array (
'id' => 8046,
'key' => '_woo_pp_txnData',
'value' =>
array (
'refundable_txns' =>
array (
0 =>
array (
'txnID' => '1U998392V9620752U',
'amount' => '5.95',
'refunded_amount' => 0,
'status' => 'Completed',
),
),
'txn_type' => 'sale',
),
),
3 =>
array (
'id' => 8056,
'key' => 'Payer PayPal address',
'value' => 'anthony@befive.co.uk',
),
4 =>
array (
'id' => 8057,
'key' => 'Payer first name',
'value' => 'Anthony',
),
5 =>
array (
'id' => 8058,
'key' => 'Payer last name',
'value' => 'Evans',
),
6 =>
array (
'id' => 8059,
'key' => 'Payment type',
'value' => 'instant',
),
7 =>
array (
'id' => 8060,
'key' => '_paypal_status',
'value' => 'completed',
),
8 =>
array (
'id' => 8061,
'key' => '_paypal_transaction_fee',
'value' => '0.47',
),
9 =>
array (
'id' => 8290,
'key' => 'TrackingNumber',
'value' => '10046182',
),
10 =>
array (
'id' => 8291,
'key' => 'CarrierName',
'value' => 'SEABOURNE',
),
11 =>
array (
'id' => 10349,
'key' => '_alg_wc_custom_order_number',
'value' => '6',
),
),
'line_items' =>
array (
48 =>
array (
),
),
'tax_lines' =>
array (
50 =>
array (
),
),
'shipping_lines' =>
array (
49 =>
array (
),
),
'fee_lines' =>
array (
),
'coupon_lines' =>
array (
51 =>
array (
),
),
);
foreach($test['meta_data'] as $data){
if($data['key'] === "TrackingNumber"){
echo "The tracking number is: " . $data['value'];
}
}
您能告诉我们到目前为止您尝试了什么吗?$array['access']['like'][0]['this']用于阵列层。您正在使用对象表示法。您希望使用副本中描述的方法之一进行搜索,例如$col=array\u searcharray\u column$array[meta\u data],key,TrackingNumber;echo$array[meta_data][$col][value];非常感谢你。这真的很有帮助,我现在已经开始工作了。