从php数组中提取值

从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->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 ( ), ), )
您试图使用$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];非常感谢你。这真的很有帮助,我现在已经开始工作了。