我有一个如下所示的数组,它实际上从用户提交的表单中收集登录信息和其他数据,并将其写入数据库。我不需要所有表单数据,因此采用这种方法。
$array['a'] = $_POST['userName'];
$array['a'] .= $_POST['passWord'];
结果是:
$array['a'] = '[email protected]';
$array['a'] .= 'password';
我试图从数组中获取值作为字符串,由
,
或 ::
分隔,但只是不知道如何做到这一点。
使用 implode 给我一个连续的字符串,如
[email protected]
$comma_separated = implode($array);
echo $comma_separated;
是否有可能在不使用 for 循环的情况下从数组中获取像
::[email protected] ::passpword
这样的字符串。
该方法无法更改,因为它已经在工作站点中。
我在 Windows 10 机器上使用 PHP 7.0 进行测试。
您的代码中有两个问题:
implode()
;array
索引如何达到这个结果?
::[email protected] ::password
您可以通过使用以下方法来实现此结果:
// example with your code
$array['a'] = '[email protected]';
$array['b'] = 'password';
echo "::".implode("::",$array);
结果:
::[email protected]::password
一些优化:
正如您所提到的,您正在使用带有
POST
方法的表单,而不是像这样使用:
echo "::".implode("::",$_POST); //::[email protected]::password
一些建议:
在文件顶部添加
error_reporting
以获取错误。
了解
implode()
功能如何工作
您可以使用内爆。它将数组项与给定的
parameter
组合起来并返回一个字符串。这是 implode 的文档。
返回一个字符串,其中包含所有数组的字符串表示形式 元素顺序相同,每个元素之间有粘合字符串。
$array = ['[email protected]', 'password'];
$string = implode(',', $array);
echo $string;
试试这个方法
$array[] = '[email protected]';
$array[] = 'password'
echo '::'.implode('::', $array);
输出
::[email protected]::password
试试这个:
echo ":: ".implode("::",$a);
请尝试像这样使用内爆。
$array[] = $_POST['userName'];
$array[] = $_POST['passWord'];
echo implode(',',$array);
是否有可能获得像 ::[email protected] ::passpword
这样的字符串
是的,在每个元素前面添加
::
,然后用一个空格进行内爆。
代码:(演示)
$array['a'] = '[email protected]';
$array['b'] = 'password';
echo implode(' ', substr_replace($array, '::', 0, 0));
输出:
::[email protected] ::password