使用爆炸函数来读取字符串
我的代码从文件中读取一行,将行拆分为元素,并且应该将元素放入数组中。我使用explode
,但它不会按顺序将元素放入数组中。使用爆炸函数来读取字符串
实施例:用于输入
line: 1000 3000 5000
这是什么情况
$a=fgets($file); // $a= 1000 3000 5000 $arr= explode(" ",$a);
$u=$arr[3]; // $u=1000
$w=$arr[6]; // $w=3000
$x=$arr[10]; // $x=5000
这是所希望的顺序:
$u=$arr[0]; // $u=1000 $w=$arr[1]; // $w=3000
$x=$arr[2]; // $x=5000
为什么explode
放数据顺序不到阵列?
回答:
它总是按顺序放置它们。如果您看到这种行为,那么您必须在文档中有额外的,这些文件在空数组元素中重新排序时将被分解。您将需要预处理字符串或修剪数组中的空元素。
或者,您可以使用preg_split
和PREG_SPLIT_NO_EMPTY
设置。
的那个球例子,你正在尝试做的:
// using regex $arr = preg_split("/ /", $a, PREG_SPLIT_NO_EMPTY);
// pruning the array
$arr = explode(" ", $a);
$arr = array_keys($a, '');
回答:
在您的例子,它打算把每每一个空间的新数组条目。
为了让你在找什么,返回的字符串必须是“$ U = 1000_ $ W = 3000_ $ X = 5000”(下划线表示这里空格)
回答:
另一种方式做到这一点将使用array_filter删除空的元素,即
$arr = explode(' ', $a); // split string into array $arr = array_filter($arr); // remove empty elements from array
$arr = array_values($arr); // strip old array keys giving sequential numbering, i.e. 0,1,2
以上是 使用爆炸函数来读取字符串 的全部内容, 来源链接: utcz.com/qa/265518.html