PHP-将字符串转换为已格式化为数组的数组
为了澄清起见,我使用了两个单独的文件。因此,我试图检查在我的第二个文件中生成的数组中是否存在一个值。第一个文件存储下面的输入PHP-将字符串转换为已格式化为数组的数组,php,Php,为了澄清起见,我使用了两个单独的文件。因此,我试图检查在我的第二个文件中生成的数组中是否存在一个值。第一个文件存储下面的输入 //mytxtfile.txt previous content stored in a text file using file_put_content and print_r... Array ( [0] => Bill [1] => Bob [2] => Joe [3] => Frank [4] =&g
//mytxtfile.txt previous content stored in a text file using file_put_content and print_r...
Array
(
[0] => Bill
[1] => Bob
[2] => Joe
[3] => Frank
[4] => Mark
)
我的第二个文件我尝试调用file_get_content,但现在意识到它将我的输入存储为字符串。有没有办法将这个字符串转换回我的新文件中的数组?我尝试了json_解码,但它说它是空的。。。或者,如果这太麻烦,我也愿意更改它在生成内容的第一个文件中的存储格式。我将详细解释解决方案,但首先让我发布代码:
<?php //php 7.0.8
$input = "Array
(
[0] => Bill
[1] => Bob
[2] => Joe
[3] => Frank
[4] => Mark
)";
$lines = explode("\n", $input);
$values = array();
for ($i = 2; $i < count($lines) - 1; $i++) {
$value = explode("=>", $lines[$i])[1];
$value = trim($value);
array_push($values, $value);
}
print_r($values);
?>
因此,文件包含格式化数组作为文本,我们将文件内容拆分为行,这可以使用explode()
函数完成,现在$lines
数组包含文件的文本行。现在,我们将循环提取值,注意循环从
$i=2
开始,这是因为我们忽略了第一行(包含数组
)和第二行(包含(
),循环在最后一行之前结束,因为我们忽略了最后一行(包含)
。我们初始化一个空数组
$values
来存储数组的值,为此我们再次需要使用explode()
函数拆分每一行,但要记住分隔符是=>
,这将返回一个类似于(“[0]”,Bill”)的数组,因为我们需要使用索引1的字符串“Bill”。接下来(这一步是可选的),我们使用
trim()
函数去除值前的空格。最后,我们将结果
$value
推送到空数组中。循环结束时,您将获得提取的值。
为了便于参考,以下是所用函数的文档:
trim()
explode()
array\u push()
<?php //php 7.0.8
$input = "Array
(
[0] => Bill
[1] => Bob
[2] => Joe
[3] => Frank
[4] => Mark
)";
$lines = explode("\n", $input);
$values = array();
for ($i = 2; $i < count($lines) - 1; $i++) {
$value = explode("=>", $lines[$i])[1];
$value = trim($value);
array_push($values, $value);
}
print_r($values);
?>
因此,文件包含格式化数组作为文本,我们将文件内容拆分为行,这可以使用explode()
函数完成,现在$lines
数组包含文件的文本行。
现在,我们将循环提取值,注意循环从$i=2
开始,这是因为我们忽略了第一行(包含数组
)和第二行(包含(
),循环在最后一行之前结束,因为我们忽略了最后一行(包含)
。
我们初始化一个空数组$values
来存储数组的值,为此我们再次需要使用explode()
函数拆分每一行,但要记住分隔符是=>
,这将返回一个类似于(“[0]”,Bill”)的数组,因为我们需要使用索引1的字符串“Bill”。
接下来(这一步是可选的),我们使用trim()
函数去除值前的空格。
最后,我们将结果$value
推送到空数组中。
循环结束时,您将获得提取的值。
为了便于参考,以下是所用函数的文档:
trim()
explode()
array\u push()
print\r不是序列化,而是使用,或然后或。。把它转换回来并不容易。。哦,好吧。。。因此,我将我的第一个文件改为json_编码,它可以工作。。。。感谢您的帮助打印不是序列化,而是使用,或然后或。。把它转换回来并不容易。。哦,好吧。。。因此,我将我的第一个文件改为json_编码,它可以工作。。。。感谢您的帮助。此限制适用于索引数组,如果将\d+更改为\w+,则它也将处理关联数组。此限制适用于索引数组,如果将\d+更改为\w+,则它也将处理关联数组。