【问题标题】:String Into Array PHP字符串到数组 PHP
【发布时间】:2019-01-15 12:56:53
【问题描述】:

我正在尝试将字符串转换为多维数组。

我在网上找到了很多答案,但他们希望你有数组键等...

我的字符串:

用户 ID\n234234\n20053\n19928\n16325

我已经尝试了通常的方法:

$arr= array();
$arr = explode("\n", $string);

我也试过了

$arr[] = explode("\n", $string);

但结果总是这样:

array(5) { 
    [0]=> string(7) "UserIds" 
    [1]=> string(6) "234234" 
    [2]=> string(5) "20053" 
    [3]=> string(5) "19928" 
    [4]=> string(5) "16325" 
} 

我的预期结果:

array(5) { 
    [0]=> array(1) { [0]=> string(7) "UserIds" } 
    [1]=> array(1) { [0]=> int(234234) } 
    [2]=> array(1) { [0]=> int(20053) } 
    [3]=> array(1) { [0]=> int(19928) } 
    [4]=> array(1) { [0]=> int(16325) } 
}

【问题讨论】:

  • 当然,explode 不会产生任何你能想象到的任意数据结构。第一个结果是 is 在此处预期。你展示的第二件事可能是你想要的,但提供这样的东西不是explode的工作。如果需要,您必须自己相应地转换爆炸结果。

标签: php arrays string


【解决方案1】:

一种方法是使用array_map 映射响应并将项目包装在一个数组中:

$string = "UserIds\n234234\n20053\n19928\n16325";
$arr = array_map(function($x){return [$x];}, explode("\n", $string));
print_r($arr);

Demo

【讨论】:

  • 添加 is_numeric 测试以过滤掉数字,以便将它们转换为 int 类型。并不是说它在 php 中真的很重要
  • 这正是我想要的。完美运行!
猜你喜欢
  • 2011-11-21
  • 2016-01-09
  • 1970-01-01
  • 2017-04-15
  • 2013-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-27
相关资源
最近更新 更多