【问题标题】:How can I add a delimiter to the last value of my array in php using implode?如何使用 implode 在 php 中的数组的最后一个值中添加分隔符?
【发布时间】:2020-04-29 02:03:15
【问题描述】:

手头的问题:我有一个存储两个数组的变量 ZeroC。我想使用 curl 将它发送到另一个 PHP 文件,但只发送第一个数组。为了解决这个问题,我尝试将变量内爆成一个字符串,希望将两个数组转换成一个长字符串,但是,只有第一个数组通过。 implode 函数不会在数组中的最后一项放置分隔符(如粗体所示)。

我无法连接这两个数组,因为它们存储在同一个变量中。如果有人对如何解决此问题有任何想法,请提前致谢。

        if($i==0){      
          $thisk= implode("%", $comments);
          print_r($thisk);
        }

使用 implode 后的当前输出:

0%正确的 def 语句 %0%正确的函数名称 %0%正确的参数 0%正确的def语句%0%正确的函数名%0%正确的参数

内爆之前(作为数组):

数组([0] => 0 [1] => 正确的def语句[2] => 0 [3] => 正确的函数名[4] => 0)

数组([0] => 0 [1] => 正确的def语句[2] => 0 [3] => 正确的函数名[4] => 0)

【问题讨论】:

    标签: php arrays curl implode


    【解决方案1】:

    一种可能的解决方案:您可以在 imploding 后简单地将分隔符添加到末尾,并为最终结果再次删除分隔符。

    例子

    $thisk = "";
    for ($i = 0; i < 2; ++$i) {
        $thisk .= implode("%", $comments) . "%";
    }
    $thisk = rtrim($thisk, "%");
    

    或根据您的原始问题提供更完整的解决方案:

    <?php
    $ZeroC = [
        ['0', 'Correct def statement', '0', 'Correct function Name', '0'],
        ['0', 'Correct def statement', '0', 'Correct function Name', '0'],
    ];
    
    $result = '';
    foreach ($ZeroC as $pieces) {
        $result .= implode('%', $pieces) . '%';
    }
    $result = rtrim($result, '%');
    echo $result;
    

    输出将是:

    0%Correct def statement%0%Correct function Name%0%0%Correct def statement%0%Correct function Name%0

    【讨论】:

    • 谢谢,但没有解决问题。如果您介意再看一下,我已经更新了代码。
    【解决方案2】:

    只需在末尾手动添加%

    if ($i==0) {      
        $thisk = implode('%', $comments) . '%';
        print_r($thisk);
    }
    

    您可能需要检查 $comments 是否不为空,以防止结果字符串中出现单个 %

    【讨论】:

    • 谢谢,但即使它在最后一个值上添加了百分号,它也创建了另一个指向 null 的索引(它上面没有百分比)。当我试图在它内爆后爆炸它时,它仍然把它分成两个阵列。此外,它仍然只是将第一个数组发送到后端。
    • 所以我们必须查看更多代码才能更好地了解问题。一个完整的工作示例。
    猜你喜欢
    • 1970-01-01
    • 2015-06-12
    • 2018-01-31
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多