使这个PHP代码更有效率?

时间:2012-05-29 14:18:25

标签: php arrays

  

可能重复:
  comma separated list in php

问题:

我希望能够遍历未知大小的列表,并吐出逗号分隔列表。

例如:

Input:
  $data = array();
  $data[0]['productId'] = 11;
  $data[1]['productId'] = 22;
  $data[2]['productId'] = 33;
  $data[3]['productId'] = 44;

以下代码可以解决问题:

$prodsToCheck = "";
foreach ($data as $d) {
  $prodsToCheck .= $d['productId'].", ";
}
$prodsToCheck = substr($prodsToCheck, 0, strlen($prodsToCheck) - 2); // THIS IS THE IMPORTANT PART

print $prodsToCheck; die();

结果必须

11,22,33,44

和NOT:

11,22,33,44,

这不是最快的方法......这是什么?

2 个答案:

答案 0 :(得分:4)

你的例子和代码是不连贯的,所以我决定忽略这个例子,因为问题太简单了。

你可以使用implode,array_map和这样的匿名函数:

$prodsToCheck = implode(
   ", ", 
   array_map(
       function($element) { return $element['productId'];}, 
       $data));

完全未经测试,应该使用php 5.3 +

答案 1 :(得分:0)

print implode(", ", $array);

阅读implode