php - array_map 在两个不同版本的 PHP 中爆炸时的语法问题

标签 php mysql arrays

我有一个用“|”分隔的数组。我想要做的是用这个标识符将其分开。

数组如下:-

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/

相关文章:

php - 获取 WooCommerce 3 中不 protected 数组中的所有订单项元数据

java - 添加数组末尾的对象

arrays - 数组 1 包含在数组 2 中且元素顺序相同

php - 使用 MySQLi 准备语句时无法获取行数和提取

php - 如何访问 <game :title> with simplexml? 等元素

javascript - 如何从 joomla 的 url 中删除 catid 和 itemid?

mysql - 在 mysql5 中创建更新操作触发器时出错?

mysql 创建带有索引范围的分区

MySQL加入非唯一标识符

php - 二维数组中的所有可能性