Php 最终以“和”的形式崩溃?
我有这样一个数组:Php 最终以“和”的形式崩溃?,php,arrays,Php,Arrays,我有这样一个数组: Array ( [0] => Array ( [kanal] => TV3+ [image] => 3Plus-Logo-v2.png ) [1] => Array ( [kanal] => 6\'eren [image] => 6-eren.png )
Array
(
[0] => Array
(
[kanal] => TV3+
[image] => 3Plus-Logo-v2.png
)
[1] => Array
(
[kanal] => 6\'eren
[image] => 6-eren.png
)
[2] => Array
(
[kanal] => 5\'eren
[image] => 5-eren.png
)
)
它可能会扩展到多个子阵列
我怎样才能列一个像:TV3+、6'eren和5'eren这样的列表呢?我想这对你会有用的:
$data = array(
0 =>['kanal' => 'TV1+'],
1 =>['kanal' => 'TV2+'],
2 =>['kanal' => 'TV3+'],
);
$output = '';
$size = sizeof($data)-1;
for($i=0; $i<=$size; $i++) {
$output .= ($size == $i && $i>=2) ? ' and ' : '';
$output .= $data[$i]['kanal'];
$output .= ($i<$size-1) ? ', ' : '';
}
echo $output;
//if one chanel:
// TV1
//if two chanel:
// TV1 and TV2
//if three chanel:
// TV1, TV2 and TV3
//if mote than three chanel:
// TV1, TV2, TV3, ... TV(N-1) and TV(N)
我想这会对你有用:
$data = array(
0 =>['kanal' => 'TV1+'],
1 =>['kanal' => 'TV2+'],
2 =>['kanal' => 'TV3+'],
);
$output = '';
$size = sizeof($data)-1;
for($i=0; $i<=$size; $i++) {
$output .= ($size == $i && $i>=2) ? ' and ' : '';
$output .= $data[$i]['kanal'];
$output .= ($i<$size-1) ? ', ' : '';
}
echo $output;
//if one chanel:
// TV1
//if two chanel:
// TV1 and TV2
//if three chanel:
// TV1, TV2 and TV3
//if mote than three chanel:
// TV1, TV2, TV3, ... TV(N-1) and TV(N)
由于数组可能会更深入,所以最好使用递归函数,例如 然后转换为逗号分隔的字符串,并用“and”分隔最后两项
$lastItem = array_pop($result);
$string = implode(',', $result);
$string .= ' and ' . $lastItem;
由于数组可能会更深入,所以最好使用递归函数,例如 然后转换为逗号分隔的字符串,并用“and”分隔最后两项
$lastItem = array_pop($result);
$string = implode(',', $result);
$string .= ' and ' . $lastItem;
代码从这里被盗:
代码从这里被盗:花了一些时间,但我们走了
$arr = array(array("kanal" => "TV3+"),array("kanal" => "5\'eren"),array("kanal" => "6\'eren"));
$arr = array_map(function($el){ return $el['kanal']; }, $arr);
$last = array_pop($arr);
echo $str = implode(', ',$arr) . " and ".$last;
.花了一些时间,但我们走了
$arr = array(array("kanal" => "TV3+"),array("kanal" => "5\'eren"),array("kanal" => "6\'eren"));
$arr = array_map(function($el){ return $el['kanal']; }, $arr);
$last = array_pop($arr);
echo $str = implode(', ',$arr) . " and ".$last;
.给你
给你
如果您只是将给定的数组传递给内爆函数,您甚至无法获得子数组的值。 假设您的数组名为$arr,代码如下
$length = sizeof ( $arr );
$out = '';
for($i = 0; $i < $length - 1; $i ++) {
$out .= $arr [$i] ['kanal'] . ', ';
}
$out .= ' and ' . $arr [$length - 1] ['kanal'];
如果您只是将给定的数组传递给内爆函数,您甚至无法获得子数组的值。 假设您的数组名为$arr,代码如下
$length = sizeof ( $arr );
$out = '';
for($i = 0; $i < $length - 1; $i ++) {
$out .= $arr [$i] ['kanal'] . ', ';
}
$out .= ' and ' . $arr [$length - 1] ['kanal'];
每一个,如果,计数?我也是这么想的@zerkms@zerkms-计数是多少;在我看来,您只需要foreach。@blue:您怎么知道最后要在哪个元素和之间切换/cc@Y你没有工作每一个,如果,计数?这也是我想的@zerkms@zerkms-计数是多少;在我看来,您只需要foreach。@blue:您怎么知道最后要在哪个元素和之间切换/cc@Y U NO work关于和Stuff关于和Stuff如果某个$array['kanal']包含逗号字符怎么办?如果某个$array['kanal']包含逗号字符怎么办?stackoverflow中不建议使用纯代码答案。请您解释一下您的答案好吗?stackoverflow中不建议使用代码式答案。你能解释一下你的答案吗。