我有一个存储在名为$data
的变量中的数组,如下所示:
["data"]=>
["rows"]=>
array(30) {
[0]=>
array(2) {
[0]=>
string(10) "2016-08-15"
[1]=>
int(3)
}
[1]=>
array(2) {
[0]=>
string(10) "2016-08-16"
[1]=>
int(18)
}
[2]=>
array(2) {
[0]=>
string(10) "2016-08-17"
[1]=>
int(5)
}
[3]=>
array(2) {
[0]=>
string(10) "2016-08-18"
[1]=>
int(3)
}
[4]=>
array(2) {
[0]=>
string(10) "2016-08-19"
[1]=>
int(11)
}
[5]=>
array(2) {
[0]=>
string(10) "2016-08-20"
[1]=>
int(5)
}
我尝试从30个条目中获取值并添加逗号和空格:
<?php
foreach ($data->data->rows as $data) {
if (isset($data[1])) {
echo $data[1] . ', ';
}
}
?>
结果如下:
[18, 5, 3, 11, 5, 7, 9, 7, 17, 6, 3, 3, 1, 19, 13, 7, 3, 4, 10, 3, 5, 5, 7, 4, 2, 1, 8, 10, 6, 9, ],
但在最后一次参赛后,我不想要一个逗号和空格。我怎么能这样做?
答案 0 :(得分:5)
我建议你这个解决方案:
$values = [];
foreach ($data->data->rows as $data) {
if (isset($data[1])) {
$values[] = $data[1];
}
}
echo implode(',', $values);
此外,如果你想获得json字符串 - 更好地使用json_encode
:
echo json_encode($values);
答案 1 :(得分:5)
只需使用implode和array_column:
$prepared_array = array_column($data, 1);
$result = array_implode(', ',$prepared_array);
答案 2 :(得分:0)
Yes you can use it using implode as well as you own logic..
<?php
foreach ($data->data->rows as $key => $data) {
if (isset($data[1])) {
echo $data[1];
if($key === count($data->data->rows) -1){
echo ' , ';
}
}
}
?>
答案 3 :(得分:0)
您也可以尝试这种低技术解决方案:
<?php
$sep = "";
foreach ($data->data->rows as $data) {
if (isset($data[1])) {
echo $sep . $data[1];
$sep = ', ';
}
}
?>
基本上你正在做的是在字符串前面设置分隔符。它一开始是空的,所以没有分隔符,但是在第一次迭代之后它将被填充,将分隔符放在所有未来字符串的前面。另外,因为它在开头,所以在最后一个之后没有任何东西可以追踪。
也许不是最好的解决方案,但肯定容易理解。