我有一个用“|”分隔的数组。我想要做的是用这个标识符将其分开。
数组如下:-
myid1|My Title|Detailed Description
myid2|My Title|Second Row Description
myid3|My Title|Third row description
我所做的是,我只是使用 explode
来获得我想要的结果。
$required_cells = explode('|', $bulk_array);
但问题是,只有我的第一个数组被正确分解,并且由于“新行”,下一个数组的下一个第一个单元格被混合。因此我不能只使用爆炸。
为了按如下方式获取连续数组单元格中的上部数组,我使用了以下代码:- (在 this 线程的帮助下)
Array
(
[0] => myid1
[1] => My Title
[2] => Detailed Description
myid2
[3] => My Title
[4] => Second Row Description
myid3
[5] => My Title
[6] => Second Row Description
)
工作代码:-
$str = "myid1|My Title|Detailed Description
myid2|My Title|Second Row Description
myid3|My Title|Third row description";
$newLine = (explode("\n", $str));
$result = array_map(function($someStr) {
return explode("|", $someStr);
}, $newLine);
print_r($result);
这一切都完美,但随后问题出现了。此代码在 PHP 版本 5.4.10 中工作正常,但在 PHP 版本 5.2.14 中出现以下错误。我的开发服务器是 5.4.10,不幸的是我的生产服务器是 5.2.14,因此我需要解决这个问题。错误如下:-
Parse error: syntax error, unexpected T_FUNCTION, expecting ')' in page.php on line 310
最佳答案
你需要爆炸两次!
$result=array();
$lines=explode("\n", $str);
foreach ($lines as $line)
$result[]=explode('|', $line);
或者保持一维:
$result=array();
$lines=explode("\n", $str);
foreach ($lines as $line)
$result=array_merge($result,explode('|', $line));
关于php - array_map 在两个不同版本的 PHP 中爆炸时的语法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25634088/