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中不建议使用代码式答案。你能解释一下你的答案吗。