PHP 中内爆函数的可能限制



我有以下代码没有按预期返回。我希望最终结果是一个字符串:

$organizers = array_unique($organizers);     // this returns correctly
$organizers = implode(', ', $organizers);    // this returns nothing
var_dump($organizers);                        // no data appears here
exit;

array_unique()函数正确返回数据,我可以看到它返回的数组。首先,$organizers数组是一个简单的一维字符串数组,这些字符串的长度都小于 20 个字符。我认为问题可能是$organizers有超过10,000个指数。可以内爆的数组的长度是否有限制?有解决方法吗?我在手册中找不到任何内容,但是我已经彻底测试了此代码,我相信错误一定是implode().

我不知道

是否有限制,但我想到的是你也在将数组转换为字符串。这不应该是 PHP 中的问题,但尝试将其称为不同的变量以获得内爆的结果?

$organizers        = array_unique($organizers);     // this returns correctly
$organizers_string = implode(', ', $organizers);    // this returns nothing
// This gives it a different space 

编辑:如果由于某种原因 implode() 仍然有问题。

$organizers = array_unique($organizers);
$neworganizers = "";
for($i = 0; $i < sizeof($organizers); $i++)
{
    $neworganizers .= $organizers[$i];
    if($i != sizeof($organizers) - 1)
    {
        $neworganizers .= ", ";
    }
}
/

/$neworganizers 现在相当于 .implode() 在调用时应该返回的内容$organizers

$organizers = array();
$organizers[0] = "value1";
$organizers[1] = "value2";
$organizers[2] = "value3";
$organizers[3] = "value3";
$organizers = array_unique($organizers);     // strips out last index
$organizers = implode(', ', $organizers);    // returns string of "value1, value2, value3"
echo $organizers;

这似乎对 writecodeline.com/php/起作用

当我

试图通过包含特殊字符的字符串爆炸/内爆并且它们被单引号封装时,我也遇到了旧 php 构建的问题。我知道这听起来很疯狂,但在某些服务器上可能需要双引号。

参考:在较旧的生产服务器上工作的个人经验。

我不想认为我在陈述显而易见的事情,但内爆不是只以字符串作为参数吗?也许它应该更像这样...

$organizers = array_unique($organizers);
//I'm guessing what you wanted was an array of arrays?
$neworganizers = array();
for($i = 0; $i < sizeof($organizers); $i++)
{
    $neworganizers[$i] = implode(", ", $organizers);
}
print_r($neworganizers);

相关内容

  • 没有找到相关文章

最新更新