我有一个数组,我正在尝试连接这个数组的一些值。目前,$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;
谢谢!
答案 0 :(得分:8)
您可以使用implode
function
echo implode(', ', array_values($book));
如果您只想显示数组的某些元素(此处似乎只显示4个类别),请将数组减少为4个元素(或使用这些值创建一个新元素)并使用implode。
答案 1 :(得分:3)
有两种方法可以解决这个问题:
$all = "$bookcategory1, $bookcategory2, $bookcategory3, $bookcategory4";
双引号允许处理变量,而不是仅回显变量名。
OR
$all = $bookcategory1 .", ". $bookcategory2 .", ". $bookcategory3 .", ". $bookcategory4;
答案 2 :(得分:2)
您可以使用$ a。 “,”。 $ b - 但这是一个更好的方法......它的工作方式与在shell脚本中使用变量非常相似:
$a = "this";
$b = "that";
$c = "other thing";
echo "${a},${b},${c}\n";
输出结果为:
这个,那个,其他的东西
答案 3 :(得分:1)
您可以使用:
$str = implode(', ', array_values($book));
//=> BN, Amazon, Sony, Kobo, Smashwords, Apple, Android
答案 4 :(得分:1)
$all = $bookcategory1 . $bookcategory2 . $bookcategory3 . $bookcategory4;
应该是:
$all = $bookcategory1 . ", " . $bookcategory2 . ", " . $bookcategory3 . ", " . $bookcategory4;
答案 5 :(得分:1)
可以这样做,因为这会将所有内容格式化为您想要的内容。
$all = $bookcategory1 . ", " . $bookcategory2 . ", " . $bookcategory3 . ", " $bookcategory4;
答案 6 :(得分:1)
如果要在数组值为空时避免使用额外的逗号,例如以下数组:
$book = array("18" => '',
"19" => 'Amazon',
"20" => 'Sony',
"21" => 'Kobo',
"22" => 'Smashwords',
"23" => 'Apple',
"24" => 'Android'
);
与$book[0] . ", " . $book[1] ...
或implode(", ",$book)
的正常连接输出将以额外的逗号(, Amazon, Sony
)开头,因为它也添加了空白值。要跳过空白,您需要过滤掉值:
$all = implode(", ",array_filter($book));
echo $all;
// Amazon, Sony, Kobo, Smashwords, Apple, Android