使用爆炸函数来读取字符串

我的代码从文件中读取一行,将行拆分为元素,并且应该将元素放入数组中。我使用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_splitPREG_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

回到顶部