在php中更有效地访问和过滤数组

时间:2016-02-02 20:12:01

标签: php arrays json performance processing-efficiency

我编写了一个代码来过滤json数组并打印一些元素,但是因为cpu使用过多(免费托管计划)而导致我被驱逐 你能帮我提高效率吗?也许通过使用像array_filter这样的函数 这是我的代码:

$obj = json_decode($data,true);
$elements=count($obj)-1;
for ($x = 0; $x <= $elements; $x++){
  if ($obj[$x]["SymbolStateId"]==1)  {
  echo $obj[$x]["FirstOrderPage"]["ExchangeSymbols"]["NSCCode"];
  echo ",";
  echo $obj[$x]["FirstOrderPage"]["BestBuyPrice"];
  echo ";";

  }
}

1 个答案:

答案 0 :(得分:0)

使用array_walk + array_filter

array_filter 允许您过滤数组元素并返回一个新数组,其中包含满足回调布尔语句的元素。

另一方面,

array_walk 允许您迭代每个数组元素并为每个数组元素应用回调函数

请使用string concatenation运算符打印更多变量,不要打3个语句来打印字符串

array_walk(
    array_filter(
        $array,
        function($item) {
            return $item["SymbolStateId"] == 1;
        }
    ),
    function($item) {
        echo $item["FirstOrderPage"]["ExchangeSymbols"]["NSCCode"] . "," . $item["FirstOrderPage"]["BestBuyPrice"] . ";";
    },
);