4

我有一个数组,我正在尝试连接这个数组的一些值。目前,$all看起来像:“AmazonSonySmashwordsBN”(见下面的代码)

我如何使它看起来像:“亚马逊、索尼、Smashwords、BN”

我明白如何连接。我的问题是,如果 $bookcategory 字符串之一为空,我不想要逗号。

$book = array("18"=>'BN', "19"=>'Amazon', "20"=>'Sony', "21"=>'Kobo', "22"=>'Smashwords', "23"=>'Apple', "24"=>'Android');

$bookcategory1 = $book[$catagory1];
$bookcategory2 = $book[$catagory2];
$bookcategory3 = $book[$catagory3];
$bookcategory4 = $book[$catagory4];


$all = $bookcategory1 . $bookcategory2 . $bookcategory3 . $bookcategory4; 

echo $all;

谢谢!

4

7 回答 7

8

implode您可以使用以下功能加入您的阵列:

echo implode(', ', array_values($book));

如果您只想显示数组中的一些元素(这里似乎只显示 4 个类别),请将数组减少到 4 个元素(或使用这些值创建一个新元素)并使用 implode。

于 2013-10-04T18:59:32.780 回答
3

有两种方法可以解决:

$all = "$bookcategory1, $bookcategory2, $bookcategory3, $bookcategory4"; 

双引号允许处理变量,而不仅仅是回显变量名称。

或者

$all = $bookcategory1 .", ". $bookcategory2 .", ". $bookcategory3 .", ". $bookcategory4; 
于 2013-10-04T18:59:21.387 回答
2

您可以使用 $a 。“,”。$b - 但这里有一个更好的方法......它的工作原理很像在 shell 脚本中使用变量:

    $a = "this";
    $b = "that";
    $c = "other thing";
    echo "${a},${b},${c}\n";

输出是:

这个,那个,其他的

于 2013-10-04T19:04:14.733 回答
1
$all = $bookcategory1 . $bookcategory2 . $bookcategory3 . $bookcategory4; 

应该:

$all = $bookcategory1 . ", " . $bookcategory2 . ", " . $bookcategory3 . ", " . $bookcategory4; 
于 2013-10-04T19:00:30.590 回答
1

可以这样做,因为这会将所有内容格式化为您想要的。

$all = $bookcategory1 . ", " . $bookcategory2 . ", " . $bookcategory3 . ", "  $bookcategory4; 
于 2013-10-04T19:01:07.593 回答
1

您可以使用:

$str = implode(', ', array_values($book));
//=> BN, Amazon, Sony, Kobo, Smashwords, Apple, Android
于 2013-10-04T18:59:30.010 回答
1

如果您想在数组值为空时避免额外的逗号,例如以下数组:

$book = array("18" => '',
              "19" => 'Amazon',
              "20" => 'Sony',
              "21" => 'Kobo',
              "22" => 'Smashwords',
              "23" => 'Apple',
              "24" => 'Android'
             );

$book[0] . ", " . $book[1] ...与or的正常连接implode(", ",$book)将以额外的逗号 ( , Amazon, Sony) 开头,因为它也添加了空白值。要跳过空白,您需要过滤掉该值:

$all = implode(", ",array_filter($book));

echo $all;
  // Amazon, Sony, Kobo, Smashwords, Apple, Android

http://codepad.org/CNvhYYBm

于 2013-10-05T03:50:55.133 回答