如何用自己的文本替换某些PHP值?

如何用自己的文本替换某些PHP值?,php,arrays,string,wordpress,replace,Php,Arrays,String,Wordpress,Replace,以下是我的PHP代码: $order_data = array( 'shipping_method' => $order->get_shippingmethod(), ); $order_data = array( 'shipping_method' => $order->get_shipping_method(str_replace('Free Shipping', 'Free', $str)) ); 'shipping\u method'值当前正在

以下是我的PHP代码:

$order_data = array(
    'shipping_method' => $order->get_shippingmethod(),
);
$order_data = array(
    'shipping_method' => $order->get_shipping_method(str_replace('Free Shipping', 'Free', $str))
);
'shipping\u method'值当前正在导出以下三个值:

  • “免费送货”
  • “联邦快递地面”
  • “UPS次日航空”
我想用我自己选择的文本替换此文本。我必须向上面的代码中添加什么才能将文本替换为其他内容?因此,如果'shipping\u method'='FedEx GROUND',我想用'FedEx'替换文本。因此,这三个值将转化为以下内容:

$shipping_method = $order->get_shipping_method();

if ( $shipping_method === 'Free Shipping' ) {
    $shipping_method = 'Free';
} elseif ( $shipping_method === 'FedEx_GROUND' ) {
    $shipping_method = 'FedEx';
} elseif ( $shipping_method === 'UPS Next Day Air' ) {
    $shipping_method = 'UPS';
}

$order_data = array(
    'shipping_method' => $shipping_method,
);
  • “免费送货”=“免费”
  • “联邦快递地面”=“联邦快递”
  • “UPS次日空气”=“UPS”
我真的没有什么PHP技能可以说,只是足以构建WordPress模板和调整其他代码。我正在编辑此代码以将WooCommerce订单导出到CSV文件,但我需要使用我选择的文本替换'shipping\u method'文本

请不要嘲笑我用PHP代码替换文本的尴尬尝试:

$order_data = array(
    'shipping_method' => $order->get_shippingmethod(),
);
$order_data = array(
    'shipping_method' => $order->get_shipping_method(str_replace('Free Shipping', 'Free', $str))
);
这显然不起作用,任何帮助都将不胜感激

我使用的插件是由WooThemes创建的订单/客户CSV导出器:

冗长的方式: 很接近……但我会简化一点,放弃
str\u replace()
。我会做如下的事情:

$shipping_method = $order->get_shipping_method();

if ( $shipping_method === 'Free Shipping' ) {
    $shipping_method = 'Free';
} elseif ( $shipping_method === 'FedEx_GROUND' ) {
    $shipping_method = 'FedEx';
} elseif ( $shipping_method === 'UPS Next Day Air' ) {
    $shipping_method = 'UPS';
}

$order_data = array(
    'shipping_method' => $shipping_method,
);
但是,无法保证更改装运方法值不会破坏依赖于它的其他内容

一个班轮备选方案: 您还可以使用(假设delimeter始终是空格或下划线)进一步简化此操作。这完全消除了对上述
if/elseif
条件的需要:

$order_data = array(
    'shipping_method' => preg_split('/[\ _]/', $order->get_shipping_method())[0],
);

这正是我想要的解决方案。又好又简单。运输方式不依赖于它,所以不用担心损坏东西。你真的救了我这么多时间。我真是太感谢你了。我喜欢这个网站,喜欢你的人!谢谢@MattBeckman还补充了另一个答案,即在一行中完成这一切。不需要丑陋的
if/elseif
语句。