在数组中按字符分割字符串失败


Fail to split a string in array by a character

我在一个Wordpress网站上工作,我想在提交后得到一些订单细节。其中之一,返回一个长字符串,我想分割和格式化它,因为我需要。下面是示例:

echo $order->get_formatted_shipping_address();
My name<br />My address<br />My postcode

我尝试在<br />中分割字符串,以便在不同的地方使用每个字段。我试过这样做:

$data = explode("<br />", $order->get_formatted_shipping_address());
$name = $data[0];
$address = $data[1];
$post = $data[2];

但是,<br />继续留在字符串中,$name$data一样拥有整个字符串。

任何想法?

在WooCommerce 2.6.1上尝试了以下操作

$data = explode('<br/>',$order->get_formatted_shipping_address());

注意分隔符是<br/>而不是<br />,您的分隔符有一个额外的空格。

作为替代,您应该使用WC_Abstract_Order类中的魔法属性来代替explode

例子
print $order->shipping_first_name;
print $order->shipping_address_1;
print $order->shipping_postcode;

这将输出字段而不经过get_formatted_shipping_address()

中的implode

你的代码应该可以工作,我甚至在我的机器上测试了它。把这段代码放到某个新文件中,然后测试它,看看它是否给出了想要的结果。如果是,那你就搞错了。你确定你使用了正确的变量吗?

<?php
    class wp {
        public function get_formatted_shipping_address() {
            return "My name<br />My address<br />My postcode";
        }
    }
    $order = new wp;
    $data = explode("<br />", $order->get_formatted_shipping_address());
    print_r($data);
    $name = $data[0];
    $address = $data[1];
    $post = $data[2];