为数组元素添加前缀,然后连接成字符串

问题描述 投票:0回答:6

我有一个如下所示的数组,它实际上从用户提交的表单中收集登录信息和其他数据,并将其写入数据库。我不需要所有表单数据,因此采用这种方法。

$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 进行测试。

php arrays prefix implode
6个回答
3
投票

您的代码中有两个问题:

  1. 错误实施
    implode()
  2. 相同
    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()
功能如何工作

PHP 内爆()


1
投票

您可以使用内爆。它将数组项与给定的

parameter
组合起来并返回一个字符串。这是 implode 的文档。

返回一个字符串,其中包含所有数组的字符串表示形式 元素顺序相同,每个元素之间有粘合字符串。

$array  = ['[email protected]', 'password'];
$string = implode(',', $array);
echo $string;

0
投票

试试这个方法

$array[]  = '[email protected]';
$array[] = 'password'
echo '::'.implode('::', $array);

输出

::[email protected]::password

0
投票

试试这个:

echo ":: ".implode("::",$a);

0
投票

请尝试像这样使用内爆。

$array[]  = $_POST['userName'];
$array[]  = $_POST['passWord'];

echo implode(',',$array);

0
投票

是否有可能获得像 ::[email protected] ::passpword

这样的字符串

是的,在每个元素前面添加

::
,然后用一个空格进行内爆。

代码:(演示

$array['a']  = '[email protected]';
$array['b'] = 'password';

echo implode(' ', substr_replace($array, '::', 0, 0));

输出:

::[email protected] ::password
© www.soinside.com 2019 - 2024. All rights reserved.