Php 如何使用我的编码模式对数组进行编码?

Php 如何使用我的编码模式对数组进行编码?,php,arrays,Php,Arrays,我如何像对$varcontent[$I][“images”]那样对数组的内容进行编码 $encoded = strtr(base64_encode(addslashes(gzcompress(serialize($nospaces),9))), '+/=', '-_,'); $varcontent[$i]["content"] = $encoded; $varcontent[$i]["images"] = array_unique($filtered); 谢谢大家! 您需要数组映射()。试试

我如何像对
$varcontent[$I][“images”]
那样对数组的内容进行编码

$encoded = strtr(base64_encode(addslashes(gzcompress(serialize($nospaces),9))), '+/=', '-_,');

$varcontent[$i]["content"] = $encoded;
$varcontent[$i]["images"] = array_unique($filtered);
谢谢大家!

您需要数组映射()。试试这个:

function encodeElement($e)
{
    return strtr(base64_encode(addslashes(gzcompress(serialize($e),9))), '+/=', '-_,');
}
array_map("encodeElement", $array);

您可以直接序列化数组,因此只需执行以下操作:

strtr(base64_编码(addslashes(gzcompress(serialize($varcontent),9)),“+/=”,“-”


但是,我不确定您试图用这个奇怪的函数字符串实现什么,尤其是在base64_encode()之前添加slashes()的奇怪选择…

您发布的代码无效。你想编码什么?具体使用什么?使用
$varcontent
$filtered
代替
$VALUE
。你应该详细说明你想用它完成什么。
strtr
addslashes
应用程序看起来没有用。@Serge@mario我已经更新了我的问题致命错误:无法重新声明encodeelement()(以前在中声明。可能是因为我在for循环中使用它,可能该函数存在于其他位置,可能不相关。请尝试其他名称。您可以始终使用for循环,但数组映射应该可以很好地工作,并且可以更快。嗨,Kromey,谢谢。我已经用完整代码更新了我的问题。您能看一下吗?